我正在编写 Chrome 扩展程序。我还需要检查 URL 是否在线。URL 返回一个变量,所以如果 var 为真,则 URL 在线。
如果 URL 处于脱机状态,错误大约需要 2 秒,因此扩展弹出窗口每次都需要 2 秒才能启动。
这是我的“旧”版本:
popup.html:
<script language="javascript" src="http://example.org/jdcheck.js"></script>
<script language="javascript" src="popup.js"></script>
popup.js:
if (variable) { [...] }
好吧,那奏效了- 2秒后。
现在我有了一个想法,所以我删除了popup.html中的scriptlink。这就是我的新 popup.js:
background.$(document).ready(function() {
var jq = document.createElement('script'); jq.type = 'text/javascript';
jq.src = 'http://127.0.0.1:9666/jdcheck.js';
document.getElementsByTagName('head')[0].appendChild(jq);
if(jdownloader){
[...action]
}
});
你看,我使用 jQuery 来加载 Checkfile。
现在,它给我一个错误:
Uncaught ReferenceError: jdownloader is not defined
好吧,看起来 createElement 不起作用。我 100% 确定 URL 给了我想要的变量。
请你帮助我好吗?我不知道如何解决这个问题。。
谢谢!马库斯
编辑:我删除了 jQuery 部分,添加了 keepGoing 和 jq.onload:
function keepGoing() {
console.log("JS should have been loaded");
if(jdownloader){
[action]
}
}
var jq = document.createElement('script');
jq.onload = keepGoing();
jq.src = 'http://127.0.0.1:9666/jdcheck.js';
document.getElementsByTagName('head')[0].appendChild(jq);
现在,控制台给了我这个:
JS should have been loaded popup.js:98
Uncaught ReferenceError: jdownloader is not defined popup.js:100
所以看起来 jdownloader var 没有传递给 popup.js。为什么为什么?!我不知道。
马库斯