问题描述
我想在 TYPO3 10.4 中创建一个 JavaScript href 链接,以在 HTML 页面上打开隐私设置模式。链接总是在保存后被删除。我找到了使用 rtekeep="1" 来保留 JavaScript 链接的解决方案。不幸的是,rtekeep 属性总是在保存后被删除。在较旧的 TYPO3 版本中,此技巧运行良好。
这是我的代码的样子:
<a href="javascript:xyz">Linktext</a>
我希望任何人都可以帮助我解决这个奇怪的问题,并提前致谢。 :)
解决方法
当然有多种方法可以解决这个问题。例如,有多种方法可以通过 CKEditor 和/或 RTE_parsefunc
配置将您的 HTML 列入白名单。在不尝试对内联 JS 提出意见的情况下,我将建议采用最小配置方式。
-
添加自定义“样式”
由于使用自定义类将新元素添加到 CKEditor 很容易(虽然
data-...
在语义上会更好,但我不知道将它添加到 CKEditor 的简单方法),我正在使用它:将类似的内容添加到您的 CKEditor yaml(请参阅 https://usetypo3.com/ckeditor.html 以获取帮助):
editor: config: stylesSet: - { name: 'Open consent modal',element: 'button',attributes: { class: 'btn btn-default open-consent' } }
-
附加点击处理程序
添加这个 JavaScript(像往常一样在
<body>
的末尾):document.querySelectorAll('.open-consent').forEach( elem => { elem.addEventListener( 'click',ev => { ev.preventDefault() // don't navigate for <a> or <button> yourShowModalFunction() } ) } )