I have the following script tag of an external (but self controlled javascript file):
<script async
src="//domain/test.js"
onerror="
(function() {
doSomething();
})();
">
</script>
The script is not critical and a good fallback exists. I want to trigger my fallback:
test.js is unavailable (This works) Is there a way to trigger the onerror event of a script tag in the script itself? Or is there another solution to solve this without repeating the onerror code?
If you can modify the script tag at all then it's easy. Give it an id and you can select it by that id and trigger anything attached to it. Here's an example...
document.querySelector("#script-tag").onerror();
<script id="script-tag" onerror="(function() { alert('error!!!'); })()"></script>
If you can't modify the script tag then you could identify it by the very fact it has an onerror attribute...
document.querySelector("script[onerror]").onerror();
If you have more than one script with an onerror attribute then you can get all the scripts and parse them manually, looking for the filename.
document.querySelectorAll("script").forEach(function(script) {
if (script.indexOf("test.js") != -1) {
script.onerror();
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With