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

发布于 2024-12-10 16:31:11 字数 705 浏览 0 评论 0原文

我正在开发一个文本编辑器,允许用户在文档中输入 HTML 文本框。例如,如果用户编写“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>

I am developing a text editor which allows users to input HTML text boxes in the document. e.g if the user writes 'Hello world', places the caret between 'hello' and 'world' and clicks the text box button, I need to place a text box control at the current caret position. Is this possible?

Currently I can place the text box at the end which is quite simple as I just create a textbox in JavaScript and append it to the <body> element. The thing that I dont know is how can we place HTML controls in between strings.

We can insert text at cursor position by using execCommand('insertHTML',..) but can we use this to insert HTML tags? Below is the HTML code that I am trying to achieve:

Before:

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

After clicking the textbox button it sholud be somewhat like this:

    <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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

偏爱自由 2024-12-17 16:31:11

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

现场演示: http://jsfiddle.net/DymzW/

代码:

if (!document.execCommand("InsertInputText", false, '')) {
    document.execCommand("InsertHTML", false, '<input type="text">');
}

You can do this using document.execCommand("InsertInputText") in IE and document.execCommand("InsertHTML") in other browsers.

Live demo: http://jsfiddle.net/DymzW/

Code:

if (!document.execCommand("InsertInputText", false, '')) {
    document.execCommand("InsertHTML", false, '<input type="text">');
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文