【问题标题】:Disable Whole Redactor.js WYSIWYG Editor禁用整个 Redactor.js 所见即所得编辑器
【发布时间】:2015-06-29 10:19:41
【问题描述】:

就像您可以禁用 <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,但如有必要,我愿意升级。谢谢!

【问题讨论】:

    标签: jquery redactor redactor.js


    【解决方案1】:

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

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

    或 Angular(在我的例子中):

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

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

    【讨论】:

      【解决方案2】:

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

      在该示例中,单击 textarea 通过加载它来“启用”编辑器,然后单击保存通过销毁它来“禁用”它。

      在您的示例中,$(".redactor").redactor('destroy') 将删除 Redactor 的花里胡哨,并为您留下一个禁用的文本区域。 $(".redactor").redactor() 将再次启用它。

      不确定这是否是最好的解决方案,但就像你提到的那样,他们的 API 似乎没有不同的方法来做到这一点。

      【讨论】:

      • 禁用的文本区域会显示编辑器内部的 HTML,不是吗?
      • 仅供参考,链接好像坏了
      【解决方案3】:

      禁用:

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

      启用

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-10
        相关资源
        最近更新 更多