file_loads_nonscript.html (1420B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>File that loads a non-script file-extension as script</title> 5 </head> 6 <body> 7 <script> 8 /* global equal */ 9 10 const files = ["file_nonscript", 11 "file_nonscript.xyz", 12 "file_nonscript.html", 13 "file_nonscript.txt", 14 "file_nonscript.json"]; 15 16 async function run() { 17 window.counter = 0; 18 19 for (let file of files) { 20 let script = document.createElement("script"); 21 let promise = new Promise((resolve, reject) => { 22 script.addEventListener("error", resolve, {once: true}); 23 script.addEventListener("load", reject, {once: true}); 24 }); 25 script.src = file; 26 document.body.append(script); 27 28 let event = await promise; 29 equal(event.type, "error"); 30 equal(window.counter, 0); 31 } 32 33 let script = document.createElement("script"); 34 let promise = new Promise((resolve, reject) => { 35 script.addEventListener("load", resolve, {once: true}); 36 script.addEventListener("error", reject, {once: true}); 37 }); 38 script.src = "file_script.js"; 39 document.body.append(script); 40 41 let event = await promise; 42 equal(event.type, "load"); 43 equal(window.counter, 1); 44 45 window.postMessage("done", "*"); 46 } 47 window.addEventListener("message", run, {once: true}) 48 </script> 49 </html>