无法在“beforeunload”事件中设置background-image属性

时间:2014-12-16 12:58:25

标签: jquery css background-image onbeforeunload

我正在尝试解决在.gifbeforeunload事件中显示unload图片时未设置动画的IE问题。我走进this answer,但发现它不起作用,所以我用这段代码玩了一下。

我有类似的东西:

var
    spinner = $('.spinner-large'),
    spinnerBackgroundImage = spinner.css('background-image');

console.log(spinnerBackgroundImage);
console.log($('.spinner-large').css('background-image'));

spinner.css('background-image', spinnerBackgroundImage);

console.log(spinner.css('background-image'));

spinner.show();

这不起作用。显示微调器,但没有背景图像。控制台包含:

backend-extra.js:97     url(http://127.0.0.1/images/spinner-large.gif)
backend-extra.js:98     url(http://127.0.0.1/images/spinner-large.gif)
backend-extra.js:102    none

我错过了什么?为什么我不能用jQuery设置整个background-image属性值?

请注意,我don't want to set a path to image in background-image property,因为我已经知道how I should do this。我问:当我尝试使用上述方法更改时,为什么background-image属性值重置为none

编辑以上是问题的jsFiddle 。这似乎是与事件相关的100%beforeunload问题。单击按钮时,相同的代码工作得很好,而在刷新页面或导航到任何其他URL时,控制台具有与上面相同的输出 - 属性设置。

1 个答案:

答案 0 :(得分:3)

网址周围应该有引号:

background-image: url("http(...)spinner-large.gif");

格式无效是足以使其变为无效的原因。否则,创建一个jsfiddle,codepen可能会有所帮助。这似乎不是明显的行为。

编辑:这超出了我的范围,但它似乎也不是你的错。我建议解决它。即使是以丑陋的方式也可能,比如没有动画IE的背景。 (无论如何,优雅地降级应该没问题!)