几天前,我遇到了在网页上获取 cssRules 数据的问题。
document.styleSheets[i].cssRules
仅适用于具有相同域样式表路径的样式标签和链接标签。
因此,如果我使用来自不同域的样式表,则很难访问这些规则,
或者,如果我从本地文件系统浏览 html 页面 - 即使从本地文件系统样式表和位于 Web 的样式表也无法访问规则。换句话说 - 从本地 fs html 页面的任何样式表中获取规则是不可能的。
如果我使用数据 url,也无法获得规则,例如:
<link rel="stylesheet" href="data:text/css;base64,Kntjb2xvcjpyZWQ7fQ==">
我不知道为什么会出现这种不公平的行为,但我希望有一天我会意识到这些限制的真正原因。
因为我真的不明白为什么要阻止js访问css规则时浏览器本身访问并呈现它们没有任何问题(跨域,本地文件系统等)
关于如何访问这些规则的任何建议?
就我而言,我编写了一个适用于每个网站的 js 扩展(所以我不能简单地将所需的 css 移动到我的域中)。