Javascript 获取某个顶级元素的HTML页面的(背景)颜色
首先,Javascript 获取某个顶级元素的HTML页面的(背景)颜色,javascript,html,css,Javascript,Html,Css,首先,document.body.style.backgroundColor在我的例子中没有返回正确的颜色(甚至没有设置),因为页面上都是div 是否有某种方法可以获取顶部像素行中某些像素的颜色?或者其他一些通用方法可以获取某些顶部(或主要)元素的背景颜色?解决方案不一定是精确的,只是基本上是有效的(尤其是对于我的案例:) 对于我目前的情况,有一种方法是这样的: $("div").css("background-color") 但是,我并不完全满意它,因为它有太多的例外,比如它需要JQuery
document.body.style.backgroundColor
在我的例子中没有返回正确的颜色(甚至没有设置),因为页面上都是div
是否有某种方法可以获取顶部像素行中某些像素的颜色?或者其他一些通用方法可以获取某些顶部(或主要)元素的背景颜色?解决方案不一定是精确的,只是基本上是有效的(尤其是对于我的案例:)
对于我目前的情况,有一种方法是这样的:
$("div").css("background-color")
但是,我并不完全满意它,因为它有太多的例外,比如它需要JQuery,并希望它返回一个相关的div,并且该div有一个背景色集。类似的内容应该会找到具有背景色的正文的第一个子元素。
请注意,它不会搜索嵌套元素
var el = document.querySelector('body > *'), color = null;
while ( el && !color) {
color = el && el.style ? el.style.backgroundColor : null;
el = el.nextSibling;
}
你能准确地写出你的要求吗?因为现在它太乱了,不知道你真正需要什么。所以你不知道页面中的哪个元素设置了背景色?@Mr.Alien:这个问题基本上是粗体的。这是尽可能精确的。其他解决方案不能让我知道颜色是近似值,但如果不可能的话也可以。这对我的情况不起作用,因为颜色是通过CSS类设置的。然后你必须以某种方式使用
getComputedStyle
,但它返回默认颜色rgba(0,0,0,0)
(透明)即使对于没有背景颜色集的元素,也很难工作。