使用 javascript/jquery 将突出显示的文本包含在带有强标签的文本区域中

发布于 2024-11-07 00:09:03 字数 450 浏览 3 评论 0原文

我正在寻找创建一个 javascript/jquery 函数来将文本区域中的一段突出显示的文本包装在强标签中 - 类似于此处的所见即所得编辑器。

这可能吗?如果可以,你能给我指出正确的方向吗?

编辑:

好的,希望这里是我想要的更清晰的描述...

我的页面上有一个可以输入的文本框。

然后我希望能够突出显示该文本的一部分,并且将突出显示的部分包裹在 标签中

因此,如果文本框包含单词 one 二三 并且我突出显示了单词“two”,我希望能够将该词包含在强标签中 - 因此成为 one two

希望这更清楚...我知道有插件,但我不需要完整的所见即所得功能。

I am looking to create a javascript/jquery function to wrap a piece of highlighted text from a textarea in strong tags - similar to the WYSIWYG editor here.

Is this possible and if so can you point me in the right direction.

EDIT:

OK so here's a hopefully clearer description of what I want...

I have a textbox on my page which I can type in.

I then want to be able to highlight a part of this text and wrap the highlighted part in <strong> tags

So if the text box had the words one two three and I highlighted the word "two", I want to be able to wrap that word in the strong tags - so becoming one <strong>two</strong> three

Hope this is clearer... I know there are plugins out there but I don't need the full WYSIWYG functionality.

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

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

发布评论

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

评论(2

俏︾媚 2024-11-14 00:09:03

我的 Rangy input(我知道这个名字很糟糕)jQuery 插件就是这样做的。

示例代码:

$("#foo").surroundSelectedText("<strong>", "</strong>");

jsFiddle:http://jsfiddle.net/aGJDa/

My Rangy inputs (terrible name, I know) jQuery plug-in does this.

Example code:

$("#foo").surroundSelectedText("<strong>", "</strong>");

jsFiddle: http://jsfiddle.net/aGJDa/

半衬遮猫 2024-11-14 00:09:03

我爱兰吉!经常使用它!但我不想只为这个小应用程序包含整个内容,所以我使用 document.execCommand 来包装选定的文本,然后使用 href(CreateLink execCommand 的第三个参数)来查找元素,将其包装与我想要的,然后删除链接:

    document.execCommand('CreateLink', false, 'uniqueid');
    var sel = $('a[href="uniqueid"]');
    sel.wrap('<strong />')
    sel.contents().unwrap();

document.execCommand 受所有主要浏览器支持,因此您应该可以安全地以这种方式破解它。在我测试过的浏览器中,浏览器本身会为您关闭和打开标签,因此,如果您从一个 html 标签的中间选择到另一个 html 标签的中间,它应该正确嵌套标签。

I love Rangy! Use it often! But I didn't want to include the whole thing just for this little application, so I did it using document.execCommand to wrap the selected text, then used the href (third parameter of the CreateLink execCommand) to find the element, wrap it with what I wanted, and then remove the link:

    document.execCommand('CreateLink', false, 'uniqueid');
    var sel = $('a[href="uniqueid"]');
    sel.wrap('<strong />')
    sel.contents().unwrap();

document.execCommand is supported by all major browsers so you should be safe hacking it this way. In the browsers I've tested, the browser itself will close and open tags for you, so if you're selecting from the middle of one html tag to the middle of another, it should nest the tags correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文