gpt4 book ai didi

javascript - 选择所有文本时,execCommand bold 在 Firefox 中失败

转载 作者:行者123 更新时间:2023-11-30 17:52:03 25 4
gpt4 key购买 nike

我正在设置使用 JavaScript 进行一些简单的 WYSIWYG 编辑,我在 Firefox 中遇到了一个问题,我在 Chrome 或 IE(所有的最新版本)中都没有。选择 contentEditable 范围内的所有文本后,如果我尝试使用 document.execCommand('bold',false,null) 将其设为粗体,我会收到一个相当无法描述的错误消息:“NS_ERROR_FAILURE:失败”

这里有一些简单的示例代码可以轻松重现该问题:

<html>
<head>
<script>
function start(){

var edit = document.getElementById('edit');
edit.contentEditable = true;

var button = document.getElementById('button');
button.onclick = function(){

// Get the editable span
var edit = document.getElementById('edit');

// Select the contents of the span
var range = document.createRange();
range.selectNodeContents(edit);
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);

// Make the text bold
document.execCommand('bold',false,null);

}

}
</script>
</head>
<body onload="start();">
<span id='edit'>Click on the button</span>
<button id='button'>Bold It All!</button>
</body>
</html>

那么,我在这里做错了什么?我刚刚遇到了一个错误吗?如果是这样,任何人都可以提出解决方案吗?

最佳答案

这是一个错误。考虑 filing it .简而言之:

  • 编辑器将尝试包装 <span><b> (或另一个 <span>useCSS 时)。
  • 这将删除 <span> .
  • 因此代码 checks <span> 的父级是可编辑的,但它不是。
  • 轰!

解决方法:contenteditable="true"真正的 block 元素,如 <div> .

关于javascript - 选择所有文本时,execCommand bold 在 Firefox 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18807098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com