| <?xml version="1.0"?> |
| <svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml" onerror="svgOnErrorHandler(evt)"> |
| <defs> |
| <title><SCRIPT> error event bubbling</title> |
| <script type="text/javascript"> |
| var messages = []; |
| |
| function addResult(message) |
| { |
| messages.push(message); |
| } |
| |
| function print(message) |
| { |
| var paragraph = document.createElementNS("http://www.w3.org/1999/xhtml", "html:div"); |
| paragraph.appendChild(document.createTextNode(message)); |
| document.getElementById("results").appendChild(paragraph); |
| } |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| function svgOnErrorHandler(e) { |
| addResult("FAIL: svg.onerror invoked " + e.message + " " + e.filename + ":" + e.lineno); |
| } |
| |
| function scriptOnErrorHandler(id) { |
| addResult("PASS: script onerror ivoked for script id = " + id + ""); |
| } |
| |
| function testOnErrorInDynamicScript() { |
| var scriptElement = document.createElementNS("http://www.w3.org/2000/svg", "svg:script"); |
| scriptElement.id = 3; |
| scriptElement.type.baseVal = "text/javascript"; |
| scriptElement.href.baseVal = "resources/doesnotexist.js"; |
| |
| scriptElement.addEventListener("error", function() { |
| addResult("PASS: onerror invoked on a dynamic script"); |
| setTimeout(endTest, 0); |
| }, true); |
| |
| document.getElementsByTagName("defs")[0].appendChild(scriptElement); |
| } |
| |
| function endTest() { |
| addResult("DONE."); |
| messages.forEach(print); |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| </script> |
| <script id="0" type="text/javascript" onerror="scriptOnErrorHandler(0)" xlink:href="resources/certainlydoesnotexist.js"></script> |
| <script id="1" type="text/javascript" onerror="scriptOnErrorHandler(1)" xlink:href="resources/certainlydoesnotexisttoo.js"/> |
| <script id="2" type="text/javascript" onload="testOnErrorInDynamicScript()" xlink:href="resources/script-load.js"></script> |
| </defs> |
| <foreignObject> |
| Test that "error" event is dispatched to SVGScriptElement onerror handler and doesn't bubble. |
| <xhtml:hr/> |
| <xhtml:p id="results"></xhtml:p> |
| </foreignObject> |
| </svg> |