如何在文本上使用TinyMCE函数而不实际选择该文本?
我的页面上有各种
,点击后会转换为TinyMCE编辑器部分。 因此,用户只需双击div,然后使用TinyMCE编辑其中的文本。
我的问题是 – 是否可以在
上运行TinyMCE函数而不实际选择文本? 我的意思是,我想实现以下用例:
- 用户点击。自行激活TinyMCE会话。
- 用户现在可以使用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;});
Interesting Posts