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