Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尊重可编辑DIV中的HTML标记_Javascript_Jquery_Html_Contenteditable - Fatal编程技术网

Javascript 尊重可编辑DIV中的HTML标记

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)

我正在尝试实现一种非常简单的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>
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部分不是问题所在。我将编辑这个问题。