我想获取所有使用CSS或元素背景属性设置的HTML页面元素的背景图像。
如何使用JavaScript实现这一功能?
我想获取所有使用CSS或元素背景属性设置的HTML页面元素的背景图像。
如何使用JavaScript实现这一功能?
getStyle()
函数取自http://www.quirksmode.org/dom/getstyles.html#link7(稍作修改)。当然,你需要确保DOM已经准备就绪。一种简单的方法是将脚本放置在页面底部,就在闭合的</body>
标签内部。<script type="text/javascript">
function getStyle(x, styleProp) {
if (x.currentStyle) var y = x.currentStyle[styleProp];
else if (window.getComputedStyle) var y = document.defaultView.getComputedStyle(x, null).getPropertyValue(styleProp);
return y;
}
// Get all elements on the page
var elements = document.getElementsByTagName('*');
// store the results
var results = [],
i = 0,
bgIm;
// iterate over the elements
for (;elements[i];i++) {
// get the background-image style property
bgIm = getStyle(elements[i], 'background-image');
// if one was found, push it into the array
if (bgIm && bgIm !== 'none') {
results.push(bgIm);
}
}
// view the console to see the result
console.log(results);
</script>
听起来你想要图片本身的路径。
如果你想要实际的元素,请更改:
results.push(bgIm);
to:
results.push(elements[i]);
imgs = [];
$("*").each(function(i) {
if($(this).css("background-image") != "none") {
imgs.push($(this).css("background-image"));
}
});
background-image
应该可以工作,因为 css()
返回计算后的样式,所以设置方式并不重要。 - RoToRa