尊重可编辑DIV内的HTML标签
Respect HTML tags inside an editable DIV
我想实现一个非常简单的wysiwyg javascript编辑器。
我有什么:我知道,当前的Javascript不能通过点击按钮来工作…
wrapText = function(replacementText) {
var range, sel;
if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
return range.insertNode(document.createTextNode(replacementText));
} else if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
return range.text = replacementText;
}
}
};
<a id="bold-btn">Make it Bold!</a>
<div id="editit" contenteditable="true"></div>
现在,如果你在可编辑的div中标记/高亮一些文本,然后点击加粗按钮。所选文本将以标签。
问题是输出看起来像这样:
这是一个带有bold<词。>
代替:
这是一个带有粗体字的示例文本。
任何想法?
你太努力了;)
你的代码正在做的是创建一个文本节点,这意味着内容将是文本而不是被视为html。您可以直接使用execCommand
来代替。
例如,"Make it Bold"只需要调用document.execCommand('bold')
。你可以查看Mozilla的execCommand文档了解更多细节。
对于一个非常小的例子,看看wysiwyg的演示,然后看看index.js
的一些想法,或者只是使用自己的库。
相关文章:
- 在try-catch块内的HTML文件中导入JavaScript文件
- 链接内的 HTML 链接
- setInterval内的HTML Click事件
- 使用 jQuery 对元素内的 HTML 实体进行编码
- 触发 Web 浏览器控件内的 html 按钮
- 访问位于表 TD 内的 HTML 选择元素
- JQuery 获取标签内的 html 字符串
- 从表单内的 html 表中获取帖子数据?姜戈
- 访问父文档中框架内的HTML元素
- 预览文本区域内的HTML标记
- 仅在javascript日期在最近10天内的html页面上显示数据
- 将呈现的ejs视图作为服务内的html字符串返回
- 控件内的HTML代码:ComboBox, TextArea
- 尊重可编辑DIV内的HTML标签
- 在AngularJS中过滤模板内的HTML
- 在slideToggle中更改span onClick内的html
- 模板内的HTML胡子js
- 在angularjs范围内的HTML标签
- 无法将Hangouts按钮添加到脚本标记内的HTML模板中
- 点击WordPress内的HTML弹出