如何在文本上使用TinyMCE函数而不实际选择该文本?

我的页面上有各种

,点击后会转换为TinyMCE编辑器部分。 因此,用户只需双击div,然后使用TinyMCE编辑其中的文本。

我的问题是 – 是否可以在

上运行TinyMCE函数而不实际选择文本? 我的意思是,我想实现以下用例:

  1. 用户点击
  2. 自行激活TinyMCE会话。
  3. 用户现在可以使用TinyMCE工具栏上的按钮编辑div中的所有文本,而无需使用光标手动选择文本。 否则通常的情况是用户必须选择一些文本,并且只有这个选定的文本将由TinyMCE工具编辑。

如何实现,以及它有多容易?

编辑

澄清:我并不仅仅意味着TinyMCE编辑器会自动选择所有文本进行更改,但我的意思是,如果没有选择,是否可以格式化? 我的目标是允许用户只能使用TinyMCE编辑

格式 ,但不能更改文本本身。 我实际上不希望用户能够选择任何文本,只需单击

,它应该自动允许包含的文本由TinyMCE 格式化 ,而不会实际更改文本。 但是如果你知道我的意思,textarea不应该为用户“选择”。 它可以根据需要自行选择(根据@ Thariama的解决方案),但不是由用户选择。 这可能吗? 有点像只启用TinyMCE工具栏按钮但禁用文本编辑function。 据我所知,我不能使用TinyMCE的readonly配置,它还禁用具有所有格式选项的工具栏(如文本高亮,粗体,斜体等)。

在初始化之后选择所有编辑器内容不是一个大问题。这可以使用setup配置参数轻松完成

 tinyMCE.init({ ... setup : function(ed) { ed.onInit.add(function(ed, evt) { ed.getBody().setAttribute('contenteditable', false); var range = ed.selection.dom.createRng(); range.setStartBefore(ed.getBody().firstChild); range.setEndAfter(ed.getBody().lastChild); ed.selection.setRng(range); }); } }); 

这是一个小小的小提琴。

更新:

你要找的是像$(ed.getBody()).attr('contenteditable','false'); 这样,用户将无法选择甚至编辑编辑器内容,但是仍然可以使用按钮(具有所有后果)。 您可以创建具有所需function的自己的工具栏元素。

我的答案是使用@ Thariama的设置代码的组合:

 tinyMCE.init({ .... setup : function(ed) { ed.onInit.add(function(ed, evt) { ed.getBody().setAttribute('contenteditable', false); var range = ed.selection.dom.createRng(); range.setStartBefore(ed.getBody().firstChild); range.setEndAfter(ed.getBody().lastChild); ed.selection.setRng(range); }); } }); 

有一种方法可以禁用textarea中的按键,即如果我的textarea的ID为TAID ,那么我添加了以下代码:

$('#TAID_ifr').contents().find('html').bind('keypress', function(e){return false;});