我收到错误Uncaught TypeError: Cannot read property 'getURL' of undefined
的script.js
var app = {
init: function() {
var c = document.createElement("img");
c.src = chrome.extension.getURL("logo.png");
document.body.appendChild(c);
}
}
app.init();
的manifest.json
{
"name": "my extension",
"version": "1.0",
"manifest_version": 2,
"content_scripts": [
{
"matches": ["<all_urls>"],
"css": ["style.css"],
"js": ["contentScripts.js"]
}
],
"web_accessible_resources": [
"script.js",
"logo.png"
],
"permissions": ["<all_urls>"]
}
contentScripts.js
var a = document.createElement("script");
a.src = chrome.extension.getURL("script.js");
var b = document.createElement("style");
b.src = chrome.extension.getURL("style.css");
(document.head||document.documentElement).appendChild(a);
(document.head||document.documentElement).appendChild(b);
不确定我做错了什么。 SO上的其他帖子表明本地文件必须包含在manifest.json
中。我注入的javascript工作正常,但chrome.extension.getURL
方法似乎不起作用?
答案 0 :(得分:0)
脚本在页面内容中运行,而不是扩展名,因此chrome.extension.getURL不可用。在将脚本标记添加到页面之前,您需要在扩展中执行getURL调用。
这样想:忘记你添加了标签。如果页面有来自原始服务器的脚本引用,那么它如何知道chrome是否可以调用getURL?它不能。它需要知道完整的扩展URL(getURL的输出)。所以让你的脚本看起来像那样。