在IE11中从“onbeforeunload”事件处理程序设置背景图像时,DOM会使用正确的背景图像属性进行更新,但新图像不会反映在窗口/框架中。
在其他浏览器中按预期工作,包括其他版本的IE。
我有错误或不了解IE和onbeforeunload吗?
使用JSFIDDLE,因为它在Stack Overflow代码段中不起作用。
http://jsfiddle.net/carsont/jk8d3zmf/
注意:点击“运行”以触发onbeforeunload事件。
代码:
$(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>
答案 0 :(得分:0)
可以通过在设置背景图像后强制DOM更新来解决此问题。他们有很多方法可以实现这一目标,但我从这个帖子中借了一些:jQuery CSS rendering - works in Firefox, not in Chrome