Javascript 如何获取计算的CSS颜色字符串的值?
我需要获得CSS颜色“名称”或字符串的颜色值(任何格式、十六进制、rgb等)。例如Javascript 如何获取计算的CSS颜色字符串的值?,javascript,css,dom,domdocument,computed-properties,Javascript,Css,Dom,Domdocument,Computed Properties,我需要获得CSS颜色“名称”或字符串的颜色值(任何格式、十六进制、rgb等)。例如“blue”例如,我希望返回“#0000ff”或“rgb(0,0,255)” 我需要的特定颜色值是-moz-win-accentcolor,可在Firefox上获得在Windows 10个性化设置中设置的重音颜色 我尝试将CSS中的计算样式与以下代码一起使用,结果得到了“rgb(57,66,69)”。我在personalization中设置的颜色正是这样 这是该功能的代码: const testInput0 = d
“blue”
例如,我希望返回“#0000ff”
或“rgb(0,0,255)”
我需要的特定颜色值是-moz-win-accentcolor
,可在Firefox上获得在Windows 10个性化设置中设置的重音颜色
我尝试将CSS中的计算样式与以下代码一起使用,结果得到了“rgb(57,66,69)”
。我在personalization中设置的颜色正是这样
这是该功能的代码:
const testInput0 = document.getElementById("test-input-0");
const testInput1 = document.getElementById("test-input-1");
function getWindowsAccentColor() {
let coloredElement = document.createElement("span");
coloredElement.style.backgroundColor = "-moz-win-accentcolor";
let colorValue = getComputedStyle(coloredElement).getPropertyValue("background-color");
coloredElement.remove();
return colorValue;
}
testInput1.addEventListener("click", () => {
let colorValue = getWindowsAccentColor();
testInput0.value = colorValue;
console.log(colorValue);
});
当我在我的主题中使用这个CSS颜色时,值会随着变化而及时更新(有点像,它的问题中有bug)。但是,当在JS中使用计算样式时,它将保持原来的颜色,直到我完全重新启动浏览器。但是它确实会正确地更改。是否只有您的代码在重新启动浏览器之前会落后,或者您是否可以判断浏览器中的所有内容是否都落后——比如浏览器本身的某些部分是否依赖于强调色?我想说,浏览器很有可能在启动时只读取该颜色一次,这是您将获得的最好结果。@kshetline我不知道浏览器如何处理此问题,但我链接的主题是基于此颜色的,并且它会随Windows及时更新。因此,这是它第一次没有按预期更新。具有此颜色的普通元素也不会无缝更新。我不明白为什么我的WebExtension会这样做。