Javascript 如何使用tampermonkey href本地文件?
我想通过href替换站点的CSS文件URL,我知道可以引用包含CSS的外部链接,但是本地文件怎么样Javascript 如何使用tampermonkey href本地文件?,javascript,html,css,tampermonkey,Javascript,Html,Css,Tampermonkey,我想通过href替换站点的CSS文件URL,我知道可以引用包含CSS的外部链接,但是本地文件怎么样 document.querySelector("head > link:nth-child(7)").href = "http://example.com/style.css" 一个选项是将本地文件作为脚本,可能是将所需的CSS文本分配给窗口属性,然后可以在用户脚本中检索该属性。例如: // ==UserScript== // @name local // @match
document.querySelector("head > link:nth-child(7)").href = "http://example.com/style.css"
一个选项是将本地文件作为脚本,可能是将所需的CSS文本分配给
窗口
属性,然后可以在用户脚本中检索该属性。例如:
// ==UserScript==
// @name local
// @match https://example.com
// @require file:///C:/local.js
// ==/UserScript==
document.head.appendChild(document.createElement('style'))
.textContent = window.cssTextFromLocal;
及
一定要去
当然,如果您希望无条件地执行此操作(不管是在每次页面加载时),则无需进行脚本间通信,您可以像所有Chrome扩展一样,将
插入local.js
内的DOM中,默认情况下,Tampermonkey受到许多限制,这些限制旨在防止开发人员恶意行事。如果Tampermonkey可以不受限制地访问您的文件系统,那么userscript作者很容易滥用权限,在您不知情的情况下窃取或修改您的数据
您可以做的最接近的事情是在本地计算机上托管服务器(例如,使用Node.js)。这将允许您提供类似于localhost/style.css的URL,该URL将从您的计算机本地提供。不过,这只有在服务器运行时才起作用
或者,您可以创建自己的开发者模式Chrome扩展,该扩展在其web\u可访问的\u资源中包含样式表
,并基于DeclarativeContent
规则将其注入。不过,这将完全绕过Tampermonkey,因此它并不能完全回答这个问题
// local.js
window.cssTextFromLocal = `
body {
background-color: green;
}
`;