Javascript &引用;内容“脚本”;不适用于chrome v38+;?

Javascript &引用;内容“脚本”;不适用于chrome v38+;?,javascript,json,google-chrome,google-chrome-extension,google-chrome-devtools,Javascript,Json,Google Chrome,Google Chrome Extension,Google Chrome Devtools,最近,我做了一个Chrome扩展,强制所有网页使用给定的字体。它过去工作正常,但从昨天(可能更早)起就停止工作了 分机的关键代码为: manifest.json文件内容: { ... "content_scripts": [{ "matches": ["http://*/*", "https://*/*"], "js": ["font.js"], "run_at":"document_start" }], "we

最近,我做了一个Chrome扩展,强制所有网页使用给定的字体。它过去工作正常,但从昨天(可能更早)起就停止工作了

分机的关键代码为:

manifest.json
文件内容:

{
    ...

    "content_scripts": [{
        "matches":  ["http://*/*", "https://*/*"],
        "js": ["font.js"],
        "run_at":"document_start"
    }],
    "web_accessible_resources": ["font.css"]
}
var link = document.createElement("link");
link.href = chrome.extension.getURL("font.css");
link.type = "text/css";
link.rel = "stylesheet";
document.documentElement.insertBefore(link);
* {
  font-family: "Microsoft Yahei Mono", "Microsoft Yahei", sans-serif !important; 
}
font.js
文件内容:

{
    ...

    "content_scripts": [{
        "matches":  ["http://*/*", "https://*/*"],
        "js": ["font.js"],
        "run_at":"document_start"
    }],
    "web_accessible_resources": ["font.css"]
}
var link = document.createElement("link");
link.href = chrome.extension.getURL("font.css");
link.type = "text/css";
link.rel = "stylesheet";
document.documentElement.insertBefore(link);
* {
  font-family: "Microsoft Yahei Mono", "Microsoft Yahei", sans-serif !important; 
}
font.css
文件内容:

{
    ...

    "content_scripts": [{
        "matches":  ["http://*/*", "https://*/*"],
        "js": ["font.js"],
        "run_at":"document_start"
    }],
    "web_accessible_resources": ["font.css"]
}
var link = document.createElement("link");
link.href = chrome.extension.getURL("font.css");
link.type = "text/css";
link.rel = "stylesheet";
document.documentElement.insertBefore(link);
* {
  font-family: "Microsoft Yahei Mono", "Microsoft Yahei", sans-serif !important; 
}

有谁能告诉我这里发生了什么,或者建议在启动网页文档时运行
js
文件的其他方法吗?

从Chrome 38开始,Chrome遵循DOM标准,并在
时引发异常。insertBefore
忽略必需的参数(请参阅)

要修复代码,请使用

document.documentElement.insertBefore(link, null);
// or equivalently,
document.documentElement.appendChild(link);
我建议使用键而不是内容脚本来插入样式表。这样您就不再需要
font.js
(样式表也将在安装后立即应用)


-1:“停止工作”并且没有代码,抱歉,但这是不可能回答的。请包含您的代码。请向我们提供您的内容脚本的代码,否则无法知道是什么导致了错误。大多数情况下,在
文档\u start
中运行时,脚本会停止工作,因为某些元素尚未加载。。。“但是,如果没有看到您的代码,就不可能说出来。”Xan添加了代码。谢谢。@MarcoBonelli添加了代码。谢谢。仅供参考:我实际上需要使用
font.js
,因为我还需要允许多个网页使用其原始字体。