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

Javascript 在iframe中的光标位置插入HTML控件,javascript,html,iframe,textbox,Javascript,Html,Iframe,Textbox,我正在开发一个文本编辑器,允许用户在文档中输入HTML文本框。e、 g如果用户写入“Hello world”,将插入符号置于“Hello”和“world”之间,并单击文本框按钮,则需要在当前插入符号位置放置文本框控件。这可能吗 目前,我可以将文本框放在末尾,这非常简单,因为我只需在JavaScript中创建一个文本框并将其附加到元素。我不知道的是我们如何在字符串之间放置HTML控件 我们可以使用execCommand('insertHTML',…)在光标位置插入文本,但我们可以使用它插入HTML

我正在开发一个文本编辑器,允许用户在文档中输入HTML文本框。e、 g如果用户写入“Hello world”,将插入符号置于“Hello”和“world”之间,并单击文本框按钮,则需要在当前插入符号位置放置文本框控件。这可能吗

目前,我可以将文本框放在末尾,这非常简单,因为我只需在JavaScript中创建一个文本框并将其附加到
元素。我不知道的是我们如何在字符串之间放置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>

..
“hello world”//注意:这不起作用,因为它只会用标签和nt exec it打印它

您可以在IE中使用
document.execCommand(“InsertInputText”)
和在其他浏览器中使用
document.execCommand(“InsertHTML”)
来执行此操作

现场演示:

代码:

if(!document.execCommand(“InsertInputText”,false,”)){
document.execCommand(“InsertHTML”,false,”);
}

IE的第三个参数是“”。在这种情况下它如何工作?@Webars:不同的命令。
InsertInputText
插入带有
type=“text”
的输入。根据,第三个参数指定一个ID,可以是
null
或省略。
if (!document.execCommand("InsertInputText", false, '')) {
    document.execCommand("InsertHTML", false, '<input type="text">');
}