我正在开发一个文本编辑器,允许用户在文档中输入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>
答案 0 :(得分:3)
您可以使用IE中的document.execCommand("InsertInputText")
和其他浏览器中的document.execCommand("InsertHTML")
来执行此操作。
现场演示:http://jsfiddle.net/DymzW/
代码:
if (!document.execCommand("InsertInputText", false, '')) {
document.execCommand("InsertHTML", false, '<input type="text">');
}