我正在编写Chrome扩展程序,并希望编写一个JS文件,该文件提供了另一个不存在的预期函数,然后加载其他文件。我的行为类似于Perl中的require
,C中的#include
或者当传递当前模块本地和全局时Python中的execfile
,就好像引用的文件直接插入到当前的脚本。
我能找到的大多数现有解决方案都提到嵌入这些“包含”内部脚本标记,但我不确定这是否适用(如果确实如此,请解释我的扩展名在哪里注入所有这些脚本标记当前页面。)
请注意,我正在编写内容脚本。至少在“用户”方面,我不提供原始的HTML文档。
答案 0 :(得分:18)
最好的解决方案是针对Chrome的。 javascript文件按照扩展程序manifest.json
中加载的顺序列出,这里是relevant field的摘录:
{
"content_scripts": [
{
"js" : ["contentscript.js", "254195.user.js"]
}
]
}
javascript文件按照给定的顺序有效连接,然后执行。
答案 1 :(得分:-1)
function load_script (url, cache)
{
var httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
httpRequest.open('GET', url, false);
if(!cache)
{
httpRequest.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
}
httpRequest.send(null);
eval(httpRequest.responseText);
var s = httpRequest.responseText.split(/\n/);
var r = /^function\s*([a-z_]+)/i;
for (var i = 0; i < s.length; i++)
{
var m = r.exec(s[i]);
if (m != null)
{
window[m[1]] = eval(m[1]);
}
}
}
load_script("/script.js",true);
我们在组织中使用此功能来执行此操作。似乎运作良好。
答案 2 :(得分:-1)
你有没有尝试过:
<script language="javascript" src="otherfile.js">
或(我不知道哪个......但我记得其中一个正在工作)
document.write('<script type="text/javascript" src="otherfile.js"></script>');