| <!doctype html> | |
| <html> | |
| <head> | |
| <title>MathML script elements: removing children</title> | |
| <!-- This test verifies removal of children from an <mroot>/<msqrt> element using DOM operations. It should not crash and should render the same as the equivalent static page. --> | |
| <style type="text/css"> | |
| div { border: 1px solid; margin: .5em; } | |
| </style> | |
| <script type="text/javascript"> | |
| var mathmlNS = "http://www.w3.org/1998/Math/MathML"; | |
| function newMn(n) | |
| { | |
| var t = document.createTextNode(n.toString()); | |
| var mn = document.createElementNS(mathmlNS, "mn"); | |
| mn.appendChild(t); | |
| return mn; | |
| } | |
| function test1() | |
| { | |
| var msqrt = document.getElementById("test1").getElementsByTagNameNS(mathmlNS, "msqrt"); | |
| var mroot = document.getElementById("test1").getElementsByTagNameNS(mathmlNS, "mroot"); | |
| var i; | |
| for (i = 0; i < msqrt.length; i++) | |
| msqrt[i].removeChild(msqrt[i].firstChild); | |
| for (i = 0; i < mroot.length; i++) | |
| mroot[i].removeChild(mroot[i].firstChild); | |
| } | |
| function test2() | |
| { | |
| var msqrt = document.getElementById("test2").getElementsByTagNameNS(mathmlNS, "msqrt"); | |
| var mroot = document.getElementById("test2").getElementsByTagNameNS(mathmlNS, "mroot"); | |
| var i; | |
| for (i = 0; i < msqrt.length; i++) | |
| msqrt[i].removeChild(msqrt[i].lastChild); | |
| for (i = 0; i < mroot.length; i++) | |
| mroot[i].removeChild(mroot[i].lastChild); | |
| } | |
| function test3() | |
| { | |
| var msqrt = document.getElementById("test3").getElementsByTagNameNS(mathmlNS, "msqrt"); | |
| var mroot = document.getElementById("test3").getElementsByTagNameNS(mathmlNS, "mroot"); | |
| var i; | |
| for (i = 0; i < msqrt.length; i++) | |
| msqrt[i].removeChild(msqrt[i].firstChild.nextSibling); | |
| for (i = 0; i < mroot.length; i++) | |
| mroot[i].removeChild(mroot[i].firstChild.nextSibling); | |
| } | |
| function test4() | |
| { | |
| var msqrt = document.getElementById("test4").getElementsByTagNameNS(mathmlNS, "msqrt"); | |
| var mroot = document.getElementById("test4").getElementsByTagNameNS(mathmlNS, "mroot"); | |
| var i; | |
| for (i = 0; i < msqrt.length; i++) | |
| msqrt[i].removeChild(msqrt[i].lastChild.previousSibling); | |
| for (i = 0; i < mroot.length; i++) | |
| mroot[i].removeChild(mroot[i].lastChild.previousSibling); | |
| } | |
| function run() | |
| { | |
| test1(); | |
| test2(); | |
| test3(); | |
| test4(); | |
| } | |
| </script> | |
| </head> | |
| <body onload="run()"> | |
| <!-- Test 1: remove an element at the first position in an <mroot>/<msqrt> element with various number of children. --> | |
| <div id="test1">Test 1: | |
| <math><msqrt><mi>X</mi></msqrt></math> | |
| <math><msqrt><mi>X</mi><mn>1</mn></msqrt></math> | |
| <math><msqrt><mi>X</mi><mn>1</mn><mn>2</mn></msqrt></math> | |
| <math><msqrt><mi>X</mi><mn>1</mn><mn>2</mn><mn>3</mn></msqrt></math> | |
| <math><mroot><mi>X</mi></mroot></math> | |
| <math><mroot><mi>X</mi><mn>1</mn></mroot></math> | |
| <math><mroot><mi>X</mi><mn>1</mn><mn>2</mn></mroot></math> | |
| <math><mroot><mi>X</mi><mn>1</mn><mn>2</mn><mn>3</mn></mroot></math> | |
| </div> | |
| <!-- Test 2: remove an <mn> element at the last position in an <mroot>/<msqrt> element with various number of children. --> | |
| <div id="test2">Test 2: | |
| <math><msqrt><mn>1</mn><mi>X</mi></msqrt></math> | |
| <math><msqrt><mn>1</mn><mn>2</mn><mi>X</mi></msqrt></math> | |
| <math><msqrt><mn>1</mn><mn>2</mn><mn>3</mn><mi>X</mi></msqrt></math> | |
| <math><mroot><mn>1</mn><mi>X</mi></mroot></math> | |
| <math><mroot><mn>1</mn><mn>2</mn><mi>X</mi></mroot></math> | |
| <math><mroot><mn>1</mn><mn>2</mn><mn>3</mn><mi>X</mi></mroot></math> | |
| </div> | |
| <!-- Test 3: remove an element at the second position in an <mroot>/<msqrt> element with various number of children. --> | |
| <div id="test3">Test 3: | |
| <math><msqrt><mn>1</mn><mi>X</mi></msqrt></math> | |
| <math><msqrt><mn>1</mn><mi>X</mi><mn>2</mn></msqrt></math> | |
| <math><msqrt><mn>1</mn><mi>X</mi><mn>2</mn><mn>3</mn></msqrt></math> | |
| <math><msqrt><mn>1</mn><mi>X</mi><mn>2</mn><mn>3</mn><mn>4</mn></msqrt></math> | |
| <math><mroot><mn>1</mn><mi>X</mi></mroot></math> | |
| <math><mroot><mn>1</mn><mi>X</mi><mn>2</mn></mroot></math> | |
| <math><mroot><mn>1</mn><mi>X</mi><mn>2</mn><mn>3</mn></mroot></math> | |
| <math><mroot><mn>1</mn><mi>X</mi><mn>2</mn><mn>3</mn><mn>4</mn></mroot></math> | |
| </div> | |
| <!-- Test 4: remove an element at the penultimate position in an <mroot>/<msqrt> element with various number of children. --> | |
| <div id="test4">Test 4: | |
| <math><msqrt><mi>X</mi><mn>1</mn></msqrt></math> | |
| <math><msqrt><mn>1</mn><mi>X</mi><mn>2</mn></msqrt></math> | |
| <math><msqrt><mn>1</mn><mn>2</mn><mi>X</mi><mn>3</mn></msqrt></math> | |
| <math><msqrt><mn>1</mn><mn>2</mn><mn>3</mn><mi>X</mi><mn>4</mn></msqrt></math> | |
| <math><mroot><mi>X</mi><mn>1</mn></mroot></math> | |
| <math><mroot><mn>1</mn><mi>X</mi><mn>2</mn></mroot></math> | |
| <math><mroot><mn>1</mn><mn>2</mn><mi>X</mi><mn>3</mn></mroot></math> | |
| <math><mroot><mn>1</mn><mn>2</mn><mn>3</mn><mi>X</mi><mn>4</mn></mroot></math> | |
| </div> | |
| </body> | |
| </html> |