CKEditor如何在一个小部件中允许href =“javascript:void(0)”

时间:2016-05-16 17:33:05

标签: javascript widget ckeditor

关于如何让CKEditor将href="javascript:void(0)"保存在我放置在我的小部件模板中的链接中,我找不到一个干净的解决方案。保存后,通过调用CKEDITOR.instances.*.getData(),它会返回href="javascript void(0)"

我已尝试设置config.allowedContent = true;&在config.js中config.linkJavaScriptLinksAllowed = true;,但他们似乎都没有做任何事......

我已阅读this page,其中表明应该修复此问题,但这不起作用。有什么想法吗?

下面简化的plugin.js部分很有意思。这允许链接中包含href属性,但它仍会删除:

template: 
  '<div class="container">' +
    '<a href="javascript:void(0)">' +
      '<span class="label">Label</span>' +
    '</a>' +
  '</div>',

allowedContent:
  'a[href]; div(*); span(*);',

editables: {
  Label: {
    selector: '.label',
    allowedContent: ''
    }
 }

CKEditor版本:4.5.9 浏览器:Chrome

1 个答案:

答案 0 :(得分:1)

您在更改日志中找到的bug fix仅针对“链接”对话框实现,因此仅在通过插件对话框插入链接时才有效。

据我了解,您的情况有所不同,因为您使用href="javascript:void(0)的链接作为小部件模板的一部分。不完全确定您的模板结构是什么以及您是如何创建窗口小部件的,但在创建它时,您可以使用editables属性来定义窗口小部件的可编辑部分内允许的元素:

editables: {
    content: {
        selector: '.widget-content',
        allowedContent: 'p a[href]'
    }
}

因此,使用allowedContent您可以为窗口小部件的这一部分定义允许的内容 - 在这种情况下,p标记和a标记具有href属性。使用此类配置时,应正确插入<a href="javascript:void(0)">Link</a>

您可以详细了解允许的内容规则in the documentation