| <!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> |