当从IE11中的“onbeforeunload”事件设置时,在DOM中不评估背景图像内联样式

时间:2015-10-20 00:00:49

标签: javascript internet-explorer-11

在IE11中从“onbeforeunload”事件处理程序设置背景图像时,DOM会使用正确的背景图像属性进行更新,但新图像不会反映在窗口/框架中。

在其他浏览器中按预期工作,包括其他版本的IE。

我有错误或不了解IE和onbeforeunload吗?

使用JSFIDDLE,因为它在Stack Overflow代码段中不起作用。

http://jsfiddle.net/carsont/jk8d3zmf/

注意:点击“运行”以触发onb​​eforeunload事件。

代码:

$(function () {
    var $bg = $('#bg');

    $bg.css("background-image", 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAGUlEQVQIW2NkwAIYCQn+Z2BgACsiqBJuEgA0oAEG+FuXFQAAAABJRU5ErkJggg==")');

    window.onbeforeunload = function (e) {
        $bg.css("background-image", 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAATklEQVQYV2O0O3X+PwMDA8MhM0NGEI0LMBKtEJsJD27YgW1R0DgEtwWrdUQrxGYLY8V5iDUdhghrKFOITfenmXFgW/jSF+H3DNEKsdkCAO99IAvSBrFVAAAAAElFTkSuQmCC")');

        return "Don't leave";
    };
});
#bg {
    width: 50px;
    height: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div id="bg"></div>

1 个答案:

答案 0 :(得分:0)

可以通过在设置背景图像后强制DOM更新来解决此问题。他们有很多方法可以实现这一目标,但我从这个帖子中借了一些:jQuery CSS rendering - works in Firefox, not in Chrome