在iframe中的光标位置插入HTML控件

时间:2011-10-18 12:22:39

标签: javascript html iframe textbox

我正在开发一个文本编辑器,允许用户在文档中输入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 个答案:

答案 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">');
}