| <!doctype html> | |
| <title>Range test iframe</title> | |
| <link rel="author" title="Aryeh Gregor" href=ayg@aryeh.name> | |
| <meta name=timeout content=long> | |
| <body onload=run()> | |
| <script src=../common.js></script> | |
| <script> | |
| "use strict"; | |
| // This script only exists because we want to evaluate the range endpoints | |
| // in each iframe using that iframe's local variables set up by common.js. It | |
| // just creates the range and does nothing else. The data is returned via | |
| // window.testRange, and if an exception is thrown, it's put in | |
| // window.unexpectedException. | |
| window.unexpectedException = null; | |
| function run() { | |
| try { | |
| window.unexpectedException = null; | |
| if (typeof window.testNodeInput != "undefined") { | |
| window.testNode = eval(window.testNodeInput); | |
| } | |
| var rangeEndpoints; | |
| if (typeof window.testRangeInput == "undefined") { | |
| // Use the hash (old way of doing things, bad because it requires | |
| // navigation) | |
| if (location.hash == "") { | |
| return; | |
| } | |
| rangeEndpoints = eval(location.hash.substr(1)); | |
| } else { | |
| // Get the variable directly off the window, faster and can be done | |
| // synchronously | |
| rangeEndpoints = eval(window.testRangeInput); | |
| } | |
| var range; | |
| if (rangeEndpoints == "detached") { | |
| range = document.createRange(); | |
| range.detach(); | |
| } else { | |
| range = ownerDocument(rangeEndpoints[0]).createRange(); | |
| range.setStart(rangeEndpoints[0], rangeEndpoints[1]); | |
| range.setEnd(rangeEndpoints[2], rangeEndpoints[3]); | |
| } | |
| window.testRange = range; | |
| } catch(e) { | |
| window.unexpectedException = e; | |
| } | |
| } | |
| testDiv.style.display = "none"; | |
| </script> |