Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取计算的CSS颜色字符串的值?_Javascript_Css_Dom_Domdocument_Computed Properties - Fatal编程技术网

Javascript 如何获取计算的CSS颜色字符串的值?

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

我需要获得CSS颜色“名称”或字符串的颜色值(任何格式、十六进制、rgb等)。例如
“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会这样做。