IE Javascript无法正常工作,但没有错误?

时间:2012-11-21 15:07:21

标签: javascript jquery internet-explorer background

我试图创建一个自动拉伸背景以填充窗口的功能。代码在除IE 8之外的所有浏览器中都能正常工作,没有任何反应。只是,没有!

这是我正在处理的网站:http://goo.gl/BlqDS

这里是javascript文件(主要是jQuery):http://goo.gl/ITuUa

相关代码位于第一个jQuery(document).ready()的顶部。

我在IETester进行测试,它经常崩溃,表现得很奇怪,所以我不能100%确定它不能正常工作,但我很确定它是不是不。我在IETester上使用调试工具栏,我从控制台得不到任何东西。我应该至少得到"没有找到背景"。

有什么建议吗?几个小时以来一直在看这个!

3 个答案:

答案 0 :(得分:0)

发生的事情是img src未正确设置(您可能会注意到IE8中左上方的图像已损坏)。我通过查看IE的开发人员工具来解决这个问题。src为空,它尝试设置一个属性,该属性是图像URL的名称的一部分。我不是百分百肯定为什么,但你可以试一试:

- jQuery('body').append('<img id="body-background-img" src="'+ burl +'" />')
+ jQuery('body')
+    .append(jQuery("<img>", {'id': 'body-background-img', 'src': burl}));

答案 1 :(得分:0)

正如@ explosion-pills已经确定的那样,IE正在CSS中的URL周围添加引号,因此您可以使用正则表达式来获取实际的URL:

var burl = jQuery('body.custom-background').css('background-image');
burl = burl.match(/^url\((['"]*)(.*)(\1\))$/)[2];

这里正则表达式中的\1指的是第一个捕获的子模式,它是引号(无论是单个,双重还是不存在)。

答案 2 :(得分:-1)

也许你想尝试而不是

jQuery(document).ready(function() {...});

尝试使用

$(function () {...});