| <html> |
| <head> |
| |
| <script language="JavaScript"> |
| function setBlock() { |
| var el = document.getElementById("block"); |
| el.style.display="block"; |
| } |
| function setOutline() { |
| var el = document.getElementById("outline"); |
| el.style.outline="2px solid red"; |
| } |
| function setSpan() { |
| var newChild = document.createElement("span"); |
| newChild.setAttribute("id", "outline"); |
| var aSpan = document.createElement("span"); |
| aSpan.setAttribute("id", "block"); |
| newChild.appendChild(aSpan); |
| var oldChild = document.body.firstChild; |
| document.body.replaceChild(newChild, oldChild); |
| } |
| </script> |
| |
| </head> |
| |
| <body><span id="outline"> |
| <span id="block">A span-element</span> |
| </span> |
| |
| <h4>Instructions</h4> |
| <p>Click the following buttons.</p> |
| <ol> |
| <li>Start with the outmost left one.</id> |
| <li>Click the middle one.</li> |
| <li>(The ouline will not be updated correctly.) |
| <li>Click the right button.</li> |
| <li>This will crash Safari 1.3 (v176 and v170, no other configurations tested).</li> |
| <li>The combination 2. 1. 3. will also crash Safari.</li> |
| <li>1. 3. will not crash Safari. (But the outline should vanish. Shouldn't it?)</li> |
| <li>2. 3. will not crash Safari either.</li> |
| |
| <script> |
| setOutline(); |
| </script> |
| <script> |
| setBlock(); |
| </script> |
| <script> |
| setSpan(); |
| </script> |
| |
| <input type="button" value="1. Set outline property" onclick="setOutline()" /> |
| <input type="button" value="2. Set display property" onclick="setBlock()" /> |
| <input type="button" value="3. Replace span-element" onclick="setSpan()" /> |
| </body> |
| |
| </html> |