0

我正在编写一个greasemonkey 脚本,该脚本将一段代码注入到页面中。然后,该代码使用以下代码创建一个指向第 3 方源的脚本标签:

function injectThis(){
    var s = document.createElement("script");
    s.src = "http://site.com/file.js";
    s.head.appendChild(s);

    // other code to be executed once the above file has finished downloading

}

有没有办法让引擎阻塞,直到脚本的检索和处理完成?

几点注意事项:
1:同步的 xhr 是不可能的 b/c 它是跨域的
2:gm_xhr 是不可能的,因为我正在处理的脚本的目的
3:在 file.js 中添加一个事件/回调到指示加载不是解决方案,原因与 #2 不是相同的原因

4

1 回答 1

1

为什么不听onloadscript 标签的,然后再触发你的其他东西呢?
如果您需要旧版 IE 支持,您也可以收听onreadystatechange.

导致同步加载的唯一方法是使用.innerHTML,或者更糟糕的是,document.write.

更好的是设置script.onload = function () { callOtherStuff(); };.

于 2012-11-14T17:13:59.200 回答