如何在ace编辑器中禁用选择

时间:2014-07-15 11:50:31

标签: javascript ace-editor

有谁知道如何禁用ace.editor的选择?没有用鼠标和手指选择单词。

我尝试使用editor.selection(false);

但这不起作用。

4 个答案:

答案 0 :(得分:6)

editor.getSession().selection.on('changeSelection', function (e)
{
    editor.getSession().selection.clearSelection();
});

答案 1 :(得分:4)

您可以通过将编辑器设置为只读然后覆盖主题中的选择样式来有效地阻止选择:

.noselection .ace_marker-layer .ace_selection {
   background: transparent;
}

.noselection .ace_cursor {
   color: transparent;
}

然后只需将noselection类添加到您的ace容器div。

这实际上并没有阻止用户选择任何东西,但是没有可见的迹象表明它正在发生;对于所有意图和目的来说几乎都是一样的。

这里有更多细节:

https://github.com/ajaxorg/ace/wiki/Creating-or-Extending-an-Edit-Mode

还有这种方法:

https://github.com/ajaxorg/ace/issues/266

答案 2 :(得分:0)

editor.setValue(str,-1)//将光标移动到开头

editor.setValue(str,1)//将光标移动到结尾

答案 3 :(得分:0)

您可以使用以下代码禁用 ace 编辑器:

editor.setReadOnly(true);