Javascript 尊重可编辑DIV中的HTML标记
我正在尝试实现一种非常简单的wysiwyg javascript编辑器 我所拥有的: 我知道,当前的Javascript不能通过点击按钮来工作Javascript 尊重可编辑DIV中的HTML标记,javascript,jquery,html,contenteditable,Javascript,Jquery,Html,Contenteditable,我正在尝试实现一种非常简单的wysiwyg javascript编辑器 我所拥有的: 我知道,当前的Javascript不能通过点击按钮来工作 wrapText = function(replacementText) { var range, sel; if (window.getSelection) { sel = window.getSelection(); if (sel.rangeCount)
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>
wrapText=函数(replacementText){
var范围,sel;
if(window.getSelection){
sel=window.getSelection();
如果(选择范围计数){
范围=选择范围(0);
range.deleteContents();
返回范围.insertNode(document.createTextNode(replacementText));
}else if(document.selection&&document.selection.createRange){
range=document.selection.createRange();
return range.text=replacementText;
}
}
};
大胆点!
现在,如果您标记/突出显示可编辑div中的某些文本,并点击“使其加粗”按钮。所选文本将被包装在标记中
问题是,输出似乎如下所示:
这是一个带有粗体字的示例文本
而不是:
这是一个带有粗体字的示例文本
有什么想法吗?你太努力了;)
代码所做的是创建一个文本节点,这意味着内容将是文本,而不是html。您可以改为使用execCommand
例如,“makeitbold”只需要调用document.execCommand('Bold')
。
您可以查看Mozilla的文档以了解更多详细信息
对于一个非常小的示例,请查看演示,然后查看
index.js
了解一些想法,或者自己使用这个库。那么,让它更粗体的代码在哪里?我们怎么知道问题出在哪里!你的javascript代码是什么样子的?如果你不知道你的问题已经有了解决方案,我认为你需要使用innerHtml
,而不是innerText
,如果你是这样做的话。对不起,我想javascript部分不是问题所在。我将编辑这个问题。