我有一个外部(但是自我控制的javascript文件)的以下脚本标记:
<script async
src="//domain/test.js"
onerror="
(function() {
doSomething();
})();
">
</script>
脚本并不重要,并且存在良好的后备。我想触发我的后备:
test.js
不可用(这可行)有没有办法在脚本本身中触发脚本标记的onerror事件?或者是否有其他解决方案来解决此问题而不重复错误代码?
答案 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();
}
});