1

我正在开发一个 JavaScript 富文本编辑器。我使用的是带有 css 属性的 div 而不是按钮user-select: none。这在 Firefox 中运行良好,但问题出在 Google Chrome上。

当我用 css 点击 div 时user-select: none,我会从 contenteditable div 中丢失选定的文本。Html 和 css 如下所示

<div id="editor">
   <div id="controls">
      <div id="button-bold"></div>
   </div>
   <div id="rte" contenteditable></div>
</div>

CSS

#button-bold
{
    width: 20px;
    height: 20px;
    padding: 2px;
    float: left;
    border: 1px solid #E7E7E5;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
#rte {
    width: 100%;
    min-height: 400px;
    margin: 5px;
    outline: none;
}
4

2 回答 2

1

Use buttons, intead of div or span for making clickable links to change style.

And then use document.execcommand('forecolor',false,'#000000');

于 2014-06-11T16:23:40.783 回答
0

我有类似的设置,以下解决方案在 Chrome 中运行良好: 如何使用 jQuery 禁用文本选择?

答案是为“selectstart”事件添加一个处理程序。

于 2012-12-18T23:07:01.953 回答