| <p>This tests that edited whitespaces aren't all nbsps. When the region becomes non-editable, Hello and World should still be on different lines. This demonstrates a bug: the div's focus halo doesn't go away when it becomes non-editable.</p> |
| <div id="div" contenteditable="true" style="border: 1px solid black; width: 60px;"></div> |
| <ol id="console"></ol> |
| <script> |
| function log(str) { |
| var li = document.createElement("li"); |
| li.appendChild(document.createTextNode(str)); |
| var console = document.getElementById("console"); |
| console.appendChild(li); |
| } |
| |
| var div = document.getElementById("div"); |
| var sel = window.getSelection(); |
| sel.setPosition(div, 0); |
| document.execCommand("InsertText", false, " "); |
| document.execCommand("InsertText", false, "Hello"); |
| document.execCommand("InsertText", false, " "); |
| document.execCommand("InsertText", false, " "); |
| document.execCommand("InsertText", false, " "); |
| document.execCommand("InsertText", false, " "); |
| document.execCommand("InsertText", false, " "); |
| document.execCommand("InsertText", false, "World"); |
| document.execCommand("InsertText", false, " "); |
| |
| var innerText = div.innerHTML; |
| |
| // Check the pattern produced. This might change in the future. |
| var expected = " Hello World "; |
| var nbsp = false; |
| for (var i = 0; i < innerText.length; i++) { |
| if(innerText[i] != expected[i]) |
| log("Error: Character " + i + " of the editable region was not what was expected."); |
| } |
| |
| div.contentEditable = "false"; |
| // When we turn content editability off, we'll see Hello and World on the same line if editing is using all nbsps. |
| </script> |