javascript - TYPO3 10.4 rtekeep="1" 保存后删除
问题描述
我想在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() } ) } )
推荐阅读
- c++ - std::next 是向量 O(n) 还是 O(1)?
- unit-testing - 如何使用 JUnit 在 android 中对 Firestore 进行单元测试?
- java - 检索照片时相机崩溃
- php - Laravel 应用程序的最佳实践,使用 2 个不同的身份验证
- python - Python:简单的客户端服务器在第一次连接关闭后关闭监听连接
- react-native - 如何将登录凭据传递到 React Native 中导航抽屉的 DrawerMenu 的初始屏幕?
- python - pandas - 如何添加带索引的行并比较数据的差异?
- markdown - 如何放置仅包含反引号字符的内联代码块?
- sql - oracle regexp - 列和行的分区值
- php - 在 html 中包含 php 页面后 CSS 行中断