gpt4 book ai didi

JavaScript getComputedStyle 不适用于颜色名称?

转载 作者:行者123 更新时间:2023-11-28 01:10:34 24 4
gpt4 key购买 nike

我只是问我做错了什么,因为我以前已经做过,我只是不记得是怎么做的,我一定是把旧代码弄丢了。

Firefox 有一个未记录的颜色值,称为 -moz-win-accentcolor,可用于获取 Windows 10 Accent 颜色。

如果我直接在样式表中使用该颜色名称(在我的扩展中,以匹配系统的主题),效果很好,但我需要稍微加深或加亮颜色,如果不获取颜色数据本身。

这就是我所拥有的,我正在使用 window.getComputedStylegetPropertyValue 来获取颜色数据。我不在乎它是十六进制还是 RGBA,见鬼,我不在乎它是不是二进制。我只需要能够 git 颜色来操作颜色数据。

function getComputedAccent() {
let fakeEl = document.createElement("div");

fakeEl.style = "background: -moz-win-accentcolor";

return window.getComputedStyle(fakeEl).getPropertyValue("background");
}

但这只会返回一个空字符串。知道我忘记了什么吗?

(是的,我知道这是一个 hack,我不在乎。)

最佳答案

好吧,我是愚蠢的。代码确实有效,只是稍作改动。

function getComputedAccent() {
let fakeEl = document.createElement("div");

fakeEl.style = "background-color: -moz-win-accentcolor";

return window.getComputedStyle(fakeEl).getPropertyValue("background-color");
}

getComputedAccent()
"rgb(55, 60, 72)"

它以空字符串响应,因为 background 属性并不总是只是一种颜色。它可以是图像。将其更改为 background-color 就可以了。


编辑以添加更多有用的代码。

function getComputedAccent() {
let fakeEl = document.createElement("div");

fakeEl.setAttribute("style", "background-color: -moz-win-accentcolor");

let color = window.getComputedStyle(fakeEl).getPropertyValue("background-color");
color = color.match(/rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/);
color.shift();
color = color.map((value) => parseInt(value, 10));

return color;
}

关于JavaScript getComputedStyle 不适用于颜色名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52125208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com