访问“背景图像” 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 然后正确返回图像 url '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);
任何帮助将不胜感激
I am setting the background-image of some elements using css (some elements have no background image)
.file-type-pdf {
background-image: url("file-type-pdf.png");
}
I am then trying to determine in javascript whether certain elements have a background image or not, as follows
var style = YAHOO.util.Dom.getStyle(el, 'background-image');
console.log(style);
This works perfectly in FF, where elements with no background image return 'none' and elements with a background image return the image url.
However, in chrome and safari, the same code returns an empty string for both cases.
If i were to set a background image in the javascript code as follows, chrome and safari then return the image url 'foo.jpg' correctly
YAHOO.util.Dom.setStyle(el, 'background-image', 'url("foo.jpg")');
var style = YAHOO.util.Dom.getStyle(el, 'background-image');
console.log(style);
However, I cannot work out why these browsers cannot access the background-image set through the css
Note also that this syntax (maybe more familiar to some) is producing the same results (empty string in webkit browsers but correct on FF)...
var style = window.getComputedStyle(el, null) || el.currentStyle;
console.log(style.backgroundImage);
Any help would be much appreciated
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这对于我使用此页面上的 Chrome 控制台的 Stack Overflow 徽标效果很好。
对于普通 JS:
对于 jQuery:
对于 YUI:
全部返回
"url(http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3)"
。This works fine for me on the Stack Overflow logo using the Chrome console on this page.
For vanilla JS:
For jQuery:
For YUI:
All return
"url(http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=3)"
.