如何解决在Webkit浏览器中访问“背景图像” css属性
|| 我正在使用CSS设置某些元素的背景图像(某些元素没有背景图像).file-type-pdf {
background-image: url(\"file-type-pdf.png\");
}
然后,我试图在javascript中确定某些元素是否具有背景图片,如下所示
var style = YAHOO.util.Dom.getStyle(el,\'background-image\');
console.log(style);
这在FF中非常有效,其中无背景图像的元素返回\'none \',而有背景图像的元素返回图像url。
但是,在chrome和safari中,两种情况下相同的代码都会返回一个空字符串。
如果我要按照如下方法在javascript代码中设置背景图片,则chrome和safari然后正确返回图片网址\'foo.jpg \'
YAHOO.util.Dom.setStyle(el,\'background-image\',\'url(\"foo.jpg\")\');
var style = YAHOO.util.Dom.getStyle(el,\'background-image\');
console.log(style);
但是,我无法弄清楚为什么这些浏览器无法通过css访问设置的背景图像
还要注意,这种语法(可能对某些语法更熟悉)产生的结果相同(Webkit浏览器中为空字符串,但在FF上正确)...
var style = window.getComputedStyle(el,null) || el.currentStyle;
console.log(style.backgroundImage);
任何帮助将非常感激
解决方法
使用本页上的Chrome控制台在Stack Overflow徽标上对我来说效果很好。
对于香草JS:
var logo = document.getElementById(\"hlogo\").childNodes[1];
getComputedStyle(logo).getPropertyValue(\'background-image\');
对于jQuery:
$(\"#hlogo a\").css(\"backgroundImage\")`
对于YUI:
// You have to load YUI first.
var logo = document.getElementById(\"hlogo\").childNodes[1];
YAHOO.util.Dom.getStyle(logo,\'background-image\');
全部返回\"url(http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3)\"
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。