【发布时间】:2016-12-23 18:56:45
【问题描述】:
所以我正在制作一个 Chrome 扩展程序,它使用我制作的一些 TamperMonkey 脚本。我想要一个“主”javascript 文件,您可以在其中包含并执行其他脚本。我很擅长使用以下行在此主文件中包含其他 javascript 文件:
var s1 = document.createElement('script');
s1.src = chrome.extension.getURL('h.js');
document.head.appendChild(s1);
我在使用这些行时遇到的主要问题是它获取代码并将其添加到文档头部,但从未执行。
控制台输出状态:
所以我想我的主要问题是;如何让代码执行,以便从中运行各种方法和类?
这是“主要”javascript 文件:
var s1 = document.createElement('script');
s1.src = chrome.extension.getURL('h.js');
document.head.appendChild(s1);
var posinstance = new Mark(document.querySelector("#postingbody"));
posinstance.mark(positive, {
accuracy: {
value: "exactly",
limiters: [".", ",", "!"]
},
separateWordSearch: false,
diacritics: false,
className: "positive"
});
这是我要包含的脚本: http://pastebin.com/raw/ESL1xYZ7
编辑:这是 manifest.json
{ "manifest_version": 2,
"content_scripts": [ {
"exclude_globs": [ ],
"include_globs": [ "*" ],
"js":["jquery.user.js","globalVar.user.js","h.js", "word-highlighter.user.js"],
"matches": ["http://*/*","https://*/*"],
"run_at": "document_end",
"permissions":["tabs","<all_urls>"]
} ],
"converted_from_user_script": true,
"description": "did i do it right?",
"name": "Car Stuffs",
"version": "1.00",
"web_accessible_resources": ["jquery.user.js","h.js", "globalVar.user.js"]
}
我还阅读了你多次链接我的那个文件,Makyen。在我的问题中,我包括了
- 具体问题或错误
- 足够的代码来复制问题
- 期望的行为
- 明确声明
- 我能找到的所有错误消息
你想让我做什么?
【问题讨论】:
-
请edit 成为主题的问题:包括一个完整 minimal reproducible example 重复问题。包括一个manifest.json,一些背景/内容/弹出脚本/HTML。寻求调试帮助的问题(“为什么这段代码不工作?”)必须包括:►期望的行为,►特定问题或错误和►必要的最短代码重现它在问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:“如何创建 minimal reproducible example”、What topics can I ask about here? 和 How to Ask。
-
阅读我的编辑@Makyen
-
感谢您提供更多信息。 manifest.json 有帮助。它提供重要信息。在 Chrome 扩展程序中几乎总是需要一个 manifest.json 来了解发生了什么。如果您指定“main”JavaScript 文件的名称,而不是仅仅说“main”,这将很有帮助。 minimal reproducible example 的一大特点是我们应该能够将问题中的代码(并且也许使用一些明确标识的常用库)复制到我们自己的环境中并复制问题。无需猜测就能做到这一点,这让帮助变得更加容易。
-
需要minimal reproducible example 的原因是我们想提供帮助。如果我们不必重新创建复制问题所需的任何代码,那么提供帮助会要容易得多。这是您已经拥有的代码。因此,请帮助我们帮助您并提供一个完整的 minimal reproducible example 以重复此类问题的问题。如果没有minimal reproducible example,甚至开始帮助您所需的努力很多更高,这显着减少了愿意/能够帮助您的人数。即使我们付出了额外的努力,我们也必须猜测您可能遇到的问题的很大一部分。
-
基于一个假设:您将名称 h.js 用于自称为 mark.js 的文件(基于您的 pastebin链接),其中定义了
Mark有助于使这更加混乱。如果我的理解是正确的,您所称的 h.js 确实是 mark.js 如果您使用文件名 mark 将有助于使事情更容易理解.js。使用 h.js 会让人怀疑 h.js 实际上是定义Mark的东西。请清楚地确定您所包含的文件包含哪些内容。照原样,我必须在您删除的问题上查看 cmets 才能知道。
标签: javascript jquery google-chrome google-chrome-extension