javascript - CKEditor 如何在小部件中允许 href ="javascript:void(0)"

标签 javascript widget ckeditor

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

我尝试在 config.js 中设置 config.allowedContent = true; & 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

最佳答案

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 .

关于javascript - CKEditor 如何在小部件中允许 href ="javascript:void(0)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37259821/

相关文章:

javascript - 删除 JXA(用于自动化的 Javascript)中的元素和/或元素-容器关系

javascript - 固定图像从 3D 转换中消失?

javascript - 遍历 ajax 调用返回的每一行

C 的跨平台高级小部件工具包

javascript - CKEDITOR getData() 返回 html 字符实体(unicode),但是如何获得未翻译的字符?

javascript - 如何在更改时获取ckeditor的内容?

javascript - 未捕获的安全错误 : Blocked a frame with origin "https://www.google.com" from accessing a frame with origin "http://my.site.com".

css - 设计新的 Twitter 小部件(嵌入式时间轴)

jquery - 我想要关于在 jQuery 中包装小部件的方法的评论

events - CKEDITOR.setData 防止使用 .on 函数附加事件