使用 Javascript 的文本区域切换选择标签
我正在开发 BBcode 编辑器,并且想知道如何使用 Javascript 在选择上切换标签(类似于 StackOverflow 上文本编辑菜单的工作方式)。
示例:
Textarea
Lorem ipsum dolor sit amet.
如果您选择文本“ipsum dolor”并单击粗体按钮,它将变为
Lorem [b]ipsum dolor[/b] sit amet.
如果您再次单击粗体按钮,它将删除标签。
谢谢!
I'm working on a BBcode editor, and was wondering how to toggle tags on selection using Javascript (similar to how the text editing menu works on StackOverflow).
Example:
Textarea
Lorem ipsum dolor sit amet.
If you select the text 'ipsum dolor' and click on the bold button, it'll become
Lorem [b]ipsum dolor[/b] sit amet.
If you click the bold button once again, it'll remove the tags.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以获取选定的文本插入符号位置,设置插入符号,然后插入文本:
TL;DS(太长没有滚动)
底部有一个 TL;DR。
获取插入符位置
设置插入符位置
插入文本
进行插入
然后要撤消它,只需在单击按钮时检查文本选择,以及它是否包含在您单击的内容中(例如 [b]...[/b],当单击 B 按钮)然后从文本框选择中删除该文本。
TL;DR
获取一个 Markdown 插件 http://markitup.jaysalvat.com/home/
或查看在这些 http://www.queness.com/post/212/10-jquery-and-non-jquery-javascript-rich-text-editors
You can get the selected text caret positions, set the caret and then insert your text:
TL;DS (Too long didn't scroll)
There's a TL;DR at the bottom.
Get Caret Positions
Set Caret Position
Insert Text
Do Your Inserting
Then to undo it, just check the text selection when they click the button, and if its wrapped in the thing you clicked (eg [b]...[/b], when clicking the B button) then just remove that text from the textbox selection.
TL;DR
Get a markdown plugin instead http://markitup.jaysalvat.com/home/
or look at these http://www.queness.com/post/212/10-jquery-and-non-jquery-javascript-rich-text-editors