首页 > 解决方案 > TYPO3 10.4 rtekeep="1" 保存后删除

问题描述

我想在TYPO3 10.4中创建一个JavaScript href链接,以在 HTML 页面上打开隐私设置模式。链接总是在保存后被删除。我找到了使用rtekeep="1"来保留 JavaScript 链接的解决方案。不幸的是rtekeep 属性在保存后总是被删除。在旧的 TYPO3 版本中,这个技巧工作得很好。

这就是我的代码的样子:

<a href="javascript:xyz">Linktext</a>

标签: javascripttypo3rtetypo3-10.x

解决方案


当然,有多种方法可以解决这个问题。例如,有一些方法可以通过 CKEditor 和/或RTE_parsefunc配置将您的 HTML 列入白名单。在不试图对内联 JS 产生意见的情况下,我将建议一种最小配置的方式。

  1. 添加自定义“样式”

    由于使用自定义类很容易向 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' } }
    
  2. 附加点击处理程序

    添加这个JavaScript(像往常一样在末尾<body>):

    document.querySelectorAll('.open-consent').forEach(
      elem => {
        elem.addEventListener(
          'click',
          ev => {
            ev.preventDefault() // don't navigate for <a> or <button>
            yourShowModalFunction()
          }
        )
      }
    )
    

推荐阅读