Вставка HTML-элементов управления в позиции курсора в iframe - PullRequest
2 голосов
/ 18 октября 2011

Я занимаюсь разработкой текстового редактора, который позволяет пользователям вводить текстовые поля HTML в документе.например, если пользователь пишет «Hello world», помещает курсор между «hello» и «world» и нажимает кнопку текстового поля, мне нужно поместить элемент управления текстового поля в текущую позицию каретки.Это возможно?

В настоящее время я могу поместить текстовое поле в конец, что довольно просто, поскольку я просто создаю текстовое поле в JavaScript и добавляю его к элементу <body>.То, что я не знаю, это то, как мы можем поместить элементы управления HTML между строками.

Мы можем вставить текст в позиции курсора, используя execCommand('insertHTML',..), но можем ли мы использовать это для вставки тегов HTML?Ниже приведен HTML-код, которого я пытаюсь достичь:

До:

<iframe>
..
<body>
"hello world"
</body>
</iframe>

После нажатия кнопки текстового поля он должен выглядеть примерно так:

    <iframe>
    ..
    <body>
    "hello <input type"text" /> world" //NOTE: this wont work as it will just print it with the tags nad nt exec it
    </body>
    </iframe>

1 Ответ

3 голосов
/ 18 октября 2011

Вы можете сделать это, используя document.execCommand("InsertInputText") в IE и document.execCommand("InsertHTML") в других браузерах.

Живая демоверсия: http://jsfiddle.net/DymzW/

Код:

if (!document.execCommand("InsertInputText", false, '')) {
    document.execCommand("InsertHTML", false, '<input type="text">');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...