我正在尝试创建一个自动拉伸背景以填充窗口的函数。代码在所有浏览器中都工作得很好,除了IE8-,它什么都不会发生。就是,没什么!
这是我正在工作的网站:http://goo.gl/BlqDS
下面是javascript文件(主要是jQuery):http://goo.gl/ITuUa
相关代码位于第一个jQuery(document).ready()
的顶部。
我正在测试IETester,它经常崩溃,行为怪异,所以我不能100%确定它不能工作,但我非常确定它不能工作。我在IETester中使用调试工具栏,但从控制台什么也得不到。我至少应该得到“找不到背景”。
有什么建议吗?我已经看了好几个小时了!
发布于 2012-11-22 08:08:38
正如@explosion pills已经确定的那样,IE在CSS中的URL两边添加了引号,因此您可以使用正则表达式来获取实际的URL:
var burl = jQuery('body.custom-background').css('background-image');
burl = burl.match(/^url\((['"]*)(.*)(\1\))$/)[2];
在这里,正则表达式中的\1
指的是第一个捕获的子模式,即引号(无论它是单引号、双引号还是不是引号)。
发布于 2012-11-21 15:33:23
发生的情况是img src
设置不正确(您可能会注意到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-21 15:11:42
也许你想试一试而不是
jQuery(document).ready(function() {...});
只需尝试使用
$(function () {...});
https://stackoverflow.com/questions/13496116
复制