我有一个脚本,可以从名为body
的目录中为文档的bg-images
元素选择随机背景图像。如果所选背景图像在图像文件名中有“_dark”,我想在body元素中添加一个特殊类。
这是我正在使用的jQuery。它适用于Chrome& Safari,但在Firefox中什么都不做:
var backgroundImage = $('body').css('background');
var isitdark = "_dark";
if (backgroundImage.indexOf( isitdark ) != -1 ) {
$('body').addClass("dark");
} else {
$('body').removeClass("dark");
}
为什么在Firefox中没有做任何事情?有没有更好的写作方式?
我尝试将"type=text/javascript"
添加到我的所有脚本代码中,但这似乎没有帮助,我网站上的其余jQuery在所有浏览器中都能正常运行。
答案 0 :(得分:5)
使用$('body').css('background');
使用.css('background-image')
var backgroundImage = $('body').css('background-image');
没有必要,因为字符串_dark将会或不会存在,但如果您愿意,可以删除url()
或url("")
var backgroundImage = /url\(\s*(['"]?)(.*?)\1\s*\)/g.exec($('body').css('background-image'))[2];
在FF中正常工作
答案 1 :(得分:4)
background
是一个速记属性。速记属性为not guaranteed to be retrieved correctly with css
:
检索速记CSS属性(例如,
margin
,background
,border
)虽然可以在某些浏览器中使用,但不能保证。
如果您特别想获得background-image
,请获取background-image
:
var backgroundImage = $('body').css('background-image');