TYPO3 CKeditor无法呈现javascript链接

时间:2018-04-18 10:36:58

标签: ckeditor typo3

我使用的是TYPO3 8.7.8,必须提供一个javascript链接来停用Google Analytics。

链接应如下所示:

<a href="javascript:gaOptout()" onclick="alert('Google Analytics is now deactivated');">Deactivate Google Analytics</a>

不幸的是,链接没有出现在前端,这意味着它只是<p>标记内的普通文本。然而在后端一切都很好,它显示为一个链接......

这是我对CKeditor的yaml配置:

# Load default processing options
imports:
    - { resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml" }
    - { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml" }
    - { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml" }

# Configuration for the editor
# For complete documentation see http://docs.ckeditor.com/#!/api/CKEDITOR.config
editor:
  config:
    allowedContent: true
    linkJavaScriptLinksAllowed: true
    contentsCss: ["EXT:rte_ckeditor/Resources/Public/Css/contents.css", "EXT:my_extension/Resources/Public/Stylesheets/styles.css", "EXT:my_extension/Resources/Public/Stylesheets/fonts.css"]
    resize_enabled: true

    stylesSet:
    # block level styles
    - { name: "Button Default", element: "a", attributes: { 'class': 'btn btn-default', 'role': 'button', 'aria-pressed': 'true'}}

    format_tags: "p;h1;h2;h3;h4;h5;pre"

    toolbarGroups:
      - { name: styles, groups: [ styles, format ] }
      - { name: basicstyles, groups: [ basicstyles ] }
      - { name: paragraph, groups: [ list, indent, blocks, align ] }
      - { name: links, groups: [ links ] }
      - { name: clipboard, groups: [ clipboard, cleanup, undo ] }
      - { name: editing, groups: [ spellchecker ] }
      - { name: insert, groups: [ insert ] }
      - { name: tools, groups: [ table, specialchar ] }
      - { name: document, groups: [ mode ] }

    justifyClasses:
      - text-left
      - text-center
      - text-right
      - text-justify

    extraPlugins:
      - justify

    removePlugins:
      - image

    removeButtons:
      - Anchor
      - Underline
      - Strike

buttons.:
  link.:
    queryParametersSelector.:
      enabled: true

我在这里缺少什么?

4 个答案:

答案 0 :(得分:2)

我们遇到了同样的问题 - 我们为typo3写了一个小的linkhandler,只允许使用javascript:gaOptOut();链接。

在此处获取: https://www.infoworxx.de/download/ifx_linkhandler_googleAnalytics.zip

塞巴斯蒂安

答案 1 :(得分:1)

这不是ckeditor的问题,但是TYPO3本身禁止以避免安全问题 - XSS。

我使用的解决方案类似于此TYPO3 force internal links to cross domain pages to use https in news,因此编辑器例如链接到http://ga-output.tld,这将被JS链接取代。

答案 2 :(得分:0)

您可以使用源按钮(<>)将类添加到ckeditor中的链接。

<a class="gaOptout" href="#">your linked text</a>

现在您只需将函数重写为如下所示的onclick事件:

$('.gaOptout').on('click', function(){
your function
});

答案 3 :(得分:0)

这似乎在T3 9.5中仍然是一个问题,尤其是对于此Google OptOut脚本而言。 无需编码即可轻松解决:我们将包含javascript的段落剪掉,并将其放在单独的html元素中。只需将其从CKEs剪切下来,然后在Source视图中将其粘贴到新元素中即可。要使文章保持顺序,只需剪掉其余文本,然后将其粘贴到新的文本元素中即可。