从外部脚本手动调用脚本标记onerror

时间:2018-02-05 14:20:05

标签: javascript onerror

我有一个外部(但是自我控制的javascript文件)的以下脚本标记:

<script async 
    src="//domain/test.js" 
    onerror="
        (function() {
            doSomething(); 
        })(); 
    ">
</script>

脚本并不重要,并且存在良好的后备。我想触发我的后备:

  • 如果test.js不可用(这可行)
  • 手动在test.js代码中。

有没有办法在脚本本身中触发脚本标记的onerror事件?或者是否有其他解决方案来解决此问题而不重复错误代码?

1 个答案:

答案 0 :(得分:1)

如果你可以修改脚本标签,那么很容易。给它一个id,你可以通过该id选择它并触发附加到它的任何东西。这是一个例子......

document.querySelector("#script-tag").onerror();
<script id="script-tag" onerror="(function() { alert('error!!!'); })()"></script>

如果您无法修改脚本代码,那么您可以通过它具有onerror属性来识别它......

document.querySelector("script[onerror]").onerror();

如果您有多个具有onerror属性的脚本,那么您可以获取所有脚本并手动解析它们,查找文件名。

document.querySelectorAll("script").forEach(function(script) {
    if (script.indexOf("test.js") != -1) {
        script.onerror();
    }
});