Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 如何使用tampermonkey href本地文件?_Javascript_Html_Css_Tampermonkey - Fatal编程技术网

Javascript 如何使用tampermonkey href本地文件?

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

我想通过href替换站点的CSS文件URL,我知道可以引用包含CSS的外部链接,但是本地文件怎么样

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;
  }
`;