Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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 RichEditor使用execCommand(';bold';)两次追加额外的<;span>;标签_Javascript_Html - Fatal编程技术网

Javascript RichEditor使用execCommand(';bold';)两次追加额外的<;span>;标签

Javascript RichEditor使用execCommand(';bold';)两次追加额外的<;span>;标签,javascript,html,Javascript,Html,我使用execCommand('bold')将以下文本设置为粗体,但当我再次尝试禁用粗体,然后添加其他标签(如“h”或其他内容)时,它会添加额外的标签链接: <h1><span style="font-weight: normal;">111</span></h1> 111 我想知道如何避免这种情况?它应该有效 首先,如果你真的做对了,就不会发生这样的事情。 请看下面的示例,它应该可以工作 document.designMode=“on”;

我使用execCommand('bold')将以下文本设置为粗体,但当我再次尝试禁用粗体,然后添加其他标签(如“h”或其他内容)时,它会添加额外的标签链接:

<h1><span style="font-weight: normal;">111</span></h1>
111
我想知道如何避免这种情况?

它应该有效
首先,如果你真的做对了,就不会发生这样的事情。

请看下面的示例,它应该可以工作

document.designMode=“on”;
函数myFunction(事件){
如果(event.keyCode==16){
//按下shift btn exec cmd可触发粗体
document.execCommand(“粗体”);
//触发时签入警报框
//警报(document.getElementById(“thebody”).innerHTML);
//一旦触发,检查控制台中的更新代码
log(document.getElementById(“thebody”).innerHTML);
}
}

Exec execCommand(“粗体”)
按下shift btn一次高亮度,尝试执行

再次执行命令(“粗体”) 在此页面中选择一些文本,然后按SHIFT按钮使所选文本在粗体和普通之间切换


javascript代码如下所示:

Editor.setHeading = function(heading) {
    if(heading == 0){
        document.execCommand('formatBlock', false, '<div>')
    } else {
        document.execCommand('formatBlock', false, '<h'+heading+'>');
    }
}
Editor.setBold = function() {
    document.execCommand('bold', false, null);
}
Editor.setHeading=函数(标题){
如果(标题==0){
document.execCommand('formatBlock',false',)
}否则{
document.execCommand('formatBlock',false',);
}
}
Editor.setBold=函数(){
document.execCommand('bold',false,null);
}
html是:

<body>
    <div id="editor" contenteditable="true"></div>
    <script type="text/javascript" src="editor.js"></script>
</body>

我的场景是一个丰富的编辑器,就像
,我调用
execCommand('Bold')
不仅可以更改选择,还可以更改以下输入的文本。问题发生在我调用bold两次(启用然后禁用bold输入),然后启动标签输入的过程中。