Курсор в designMode
Здравствуйте. Есть iframe в режиме desingMide = 'on'. Есть кнопка, при нажатии на нее в iframe вставляется текст. После вставки курсор всегда становится в начало iframe. как можно сделать так чтобы он оставался в конце вставленного текста? Как его вообще можно позиционировать курсор в этом режиме. Я понял уже что нужно это реализовывать с помощью Range, только как? Я пробовал выбирать текст в ноде и сворачивать все к конечной точке, добился только того что курсор начал после вставки перескакивать в самый конец iframe'a. Набросал небольшой тестовый пример для наглядности. Спасибо.
<html> <head> <title>Expl</title> <script type = "text/javascript"> function initDesign() { var iFrame = document.getElementById("content"); var iDoc = iFrame.contentDocument; iDoc.designMode = 'on'; } function pasteText() { var iFrame = document.getElementById("content"); var iDoc = iFrame.contentDocument; iDoc.body.innerHTML += "Checking"; iFrame.focus(); } </script> </head> <body onload = "initDesign()"> <button id = "button" onclick = "pasteText()">Paste Text</button> <br /> <iframe id = "content"> </iframe> </body> </html> |
Курсор (каретка) рассматривается, как схлопнутое выделение.
Ставите начало и конец Range в одну точку в нужном месте (http://fastcoder.org/articles/?aid=609) и выделяете его: var sel = getSelection(); sel.removeAllRanges(); sel.addRange(range); iFrame.focus() сбрасывает выделение в некоторых браузерах. |
Часовой пояс GMT +3, время: 09:40. |