【问题标题】:CKEditor: How to manually trigger ACF(Advanced Content Filter)CKEditor:如何手动触发 ACF(高级内容过滤器)
【发布时间】:2014-07-01 02:31:52
【问题描述】:

对于旧版本的 CKEditor,我使用以下代码在将内容提交到服务器之前手动触发高级内容过滤器,但这在 4.4 版中停止工作。我想知道有没有办法在 CKEditor 中手动触发 ACF 和/或其他类型的内容验证?

editor.setData(editor.getData(););

【问题讨论】:

  • 我很好奇;非 ACF 数据如何进入编辑器?
  • 4.1之前的版本没有ACF的时候开始是脏数据。
  • 但是当您将该数据加载到CKEditor时,ACF不会过滤它吗?
  • @Nenotlep 是的,这就是问题所在,我们会丢失数据,所以我们想手动触发 ACF 以查看 CKEditor 可能在提交之前所做的更改。
  • 这听起来有点复杂。我认为将值存储在 CKEditor 之外并在提交之前进行比较可能是最确定的事情。如果您想查看 ACF 是否触发,您可以关注 dataFiltered 事件。 docs.ckeditor.com/#!/api/CKEDITOR.editor-event-dataFiltered

标签: ckeditor


【解决方案1】:

您的解决方案实际上对我有用!更准确地说,我使用了CKEDITOR.instances['instance_name'].setData( CKEDITOR.instances['instance_name'].getData() ),它成功了!

问其他人:即使您打开了 ACF,这也很有用;在我们的应用程序中有很多情况下,我们直接使用 jQuery 操作 CKEditor 中的 DOM 来实现我们拥有的一些非常自定义的功能(我们实际上在编辑器区域内创建了一些 UI),但我们不希望那些被禁止的 HTML 进入服务器这个解决方案非常有效。

(当然我们也总是在服务器上进行清理)

【讨论】:

    【解决方案2】:

    对我们来说

    CKEDITOR.instances['instance_name'].setData( CKEDITOR.instances['instance_name'].getData() )

    没有用,但获取参数中带有 1 的数据有效。

    CKEDITOR.instances['instance_name'].setData( CKEDITOR.instances['instance_name'].getData(1) )

    【讨论】:

      猜你喜欢
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 2017-03-09
      • 2014-05-24
      相关资源
      最近更新 更多