| <!DOCTYPE html> |
| <html> |
| <body> |
| <p id="p1" aria-label="p1">abcde</p> |
| <script> |
| const textNode = document.getElementById('p1').childNodes[0]; |
| var selection = window.getSelection(); |
| var selectionRange = document.createRange(); |
| |
| var go_passes = [ |
| () => { |
| // Attempt to place caret within text node. This will fail |
| // and not generate a caret moved event if caret browsing is disabled. |
| selectionRange.setStart(textNode, 1); |
| selectionRange.setEnd(textNode, 1); |
| selection.removeAllRanges(); |
| selection.addRange(selectionRange); |
| }, |
| () => { |
| // Change selection, which is possible even if caret |
| // browsing is disabled, and fires a caret moved event. |
| selectionRange.setEnd(textNode, 3); |
| }, |
| ]; |
| |
| var current_pass = 0; |
| function go() { |
| go_passes[current_pass++].call(); |
| return current_pass < go_passes.length; |
| } |
| </script> |
| </body> |
| </html> |