5

我正在尝试创建一个自动拉伸背景以填充窗口的函数。该代码在除 IE 8 之外的所有浏览器中都可以正常工作,没有任何反应。根本不值一提!

这是我正在开发的网站:http: //goo.gl/BlqDS

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

相关代码在顶部,在第一个jQuery(document).ready().

我在 IETester 中进行测试,它经常崩溃并且行为怪异,所以我不是 100% 确定它不起作用,但我很确定它不是。我正在使用带有 IETester 的调试工具栏,但我从控制台中什么也得不到。我至少应该得到“找不到背景”。

有什么建议么?已经看了好几个小时了!

4

3 回答 3

0

发生的情况是 imgsrc设置不正确(您可能会注意到 IE8- 左上角的图像损坏)。我通过查看 IE 的开发人员工具也发现了这一点。它src是空的,它试图设置一个属性,该属性是图像 url 名称的一部分。我不是 100% 确定为什么,但你可以试一试:

- jQuery('body').append('<img id="body-background-img" src="'+ burl +'" />')
+ jQuery('body')
+    .append(jQuery("<img>", {'id': 'body-background-img', 'src': burl}));
于 2012-11-21T15:33:22.757 回答
0

正如@explosion-pills 所指出的,IE 在 CSS 中的 URL 周围添加了引号,因此您可以使用正则表达式来获取实际的 URL:

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

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

于 2012-11-22T08:08:38.110 回答
-1

也许你想尝试而不是

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

尝试使用

$(function () {...});
于 2012-11-21T15:11:42.170 回答