禁用整个Redactor.js WYSIWYG编辑器

时间:2015-04-22 01:16:57

标签: jquery redactor redactor.js

就像您可以禁用<textarea disabled>...</textarea>组件一样,我想禁用编辑器编辑器,但仍会在我的页面上显示它。

我希望Redactor能够在我正在初始化的textarea上读取disabled属性,并根据需要禁用编辑器,但它不起作用,而是创建一个功能齐全的编辑器。

<textarea class="redactor" disabled></textarea>
...
<script type="text/javascript">
$(function () {
        $('.redactor').redactor();
});
</script>

我是否可以使用其他API命令或解决方法来创建禁用的编辑器?一种简单的禁用和启用它的方法将是首选。我似乎无法在Redactor文档或API中找到有关如何执行此操作的任何内容。

我正在使用Redactor 9.1.9,但如果有必要,我愿意升级。谢谢!

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我需要在某些情况下启用/禁用Redactor。结束这样的事情:http://imperavi.com/redactor/examples/click-to-edit/

在该示例中,单击textarea&#39;启用&#39;通过加载Redactor并单击“保存”来禁用&#39;通过摧毁它。

通过您的示例,$(".redactor").redactor('destroy')将删除Redactor铃声和口哨声,并为您留下一个禁用的textarea。 $(".redactor").redactor()会再次启用它。

不确定它是否是最好的解决方案,但正如您所提到的,他们的API似乎没有不同的方法。

答案 1 :(得分:2)

如果要停用编辑器,请尝试将contenteditable属性设置为false。如果您在浏览器中检查源代码(例如使用Firebug),您将看到包装编辑器的div具有contenteditable="true“属性。因此,请尝试使用jQuery更改此代码:

  

$('。redactor-editor')。attr('contenteditable','false');

或Angular(在我的情况下):

  

angular.element('。redactor-editor')。attr('contenteditable','false');

您可以尝试使用timeout执行此操作,以确保完全生成编辑器中的内容,并且您可以访问其属性。

答案 2 :(得分:0)

要禁用:

element.redactor('core.editor').attr('contenteditable', 'false');

启用

element.redactor('core.editor').attr('contenteditable', 'true');