3

我有一个功能,当您单击一个按钮时,TinyMCE框内的选定文本被包装在一个span标签中。

这是这样做的:
      var apolo = '<span id=\"' + tag + '_' + key + '\" class=\"apolo' + type + '\" onClick=\"myFunction(this.id)\">' + sel + '</span>';
      tinyMCE.activeEditor.execCommand('mceInsertContent', false, apolo);

预期的结果是: 但是,我得到的结果是:
      <span id="org_2" class="apoloP" onClick="myFunction(this.id);">SELECTED TEXT</span>

      <span id="org_2" class="apoloP">SELECTED TEXT</span>

调用我的函数的 onClick 事件被简单地忽略了。

版本 3.5.8中工作,但由于另一个没有人可以解决的错误(如何停止 TinyMCE 删除跨度标签?),我不得不移动到版本 4.0b2 。 最后,我得到的只是从一个错误到另一个错误。

有谁知道我如何为 TinyMCE 不删除我的文字?

4

2 回答 2

2

检查设置 valid_elements 并仔细查看是否将 onclick 添加为有效属性。我看起来这个属性被剥离了,因为它没有注册为有效。

于 2013-05-08T08:43:07.433 回答
0

什么可能对需要有关此主题的更多信息的任何人有所帮助:

我遇到了完全相同的问题,并且发现了有关 stackoverflow 的其他一些问题/答案,我必须从以下位置更改config/tinyMceConfig.config

<validElements>
<![CDATA[+a[id....-span[class|align|style],...]]>
</validElements>

<validElements>
<![CDATA[+a[id....-span[class|align|style|title|onclick],...]]>
</validElements>

但即使该属性显示在编辑器中 - 每次保存/发布页面时,都会以某种方式title删除onclick属性。

umbraco/Js/umbraco.controller.js以下行

var extendedValidElements = "@[id|class|style],-div[id|dir|class|align|style],ins[datetime|cite],-ul[class|style],-li[class|style],span[id|class|style]";

似乎删除了除定义的属性之外的所有内容。当我将其更改为

var extendedValidElements = "@[id|class|style],-div[id|dir|class|align|style],ins[datetime|cite],-ul[class|style],-li[class|style],span[id|class|style|title|onclick]";

保存/发布后属性现在仍然存在。我希望这可能对某人有所帮助。

于 2017-05-10T15:52:30.193 回答