Javascript TinyMCE错误地合并了标签

Javascript TinyMCE错误地合并了标签,javascript,tinymce,rich-text-editor,Javascript,Tinymce,Rich Text Editor,TinyMCE有以下问题: 我已将以下代码插入到TinyMCE实例中: <p><a href="/_pics/articles/large/WAbOlemChF.jpg" rel="gallery"><img class="img-center" src="/_pics/articles/WAbOlemChF.jpg" alt="b" /></a></p> <p><a href="/_pics/articles/lar

TinyMCE有以下问题:

我已将以下代码插入到TinyMCE实例中:

<p><a href="/_pics/articles/large/WAbOlemChF.jpg" rel="gallery"><img class="img-center" src="/_pics/articles/WAbOlemChF.jpg" alt="b" /></a></p>
<p><a href="/_pics/articles/large/cT89QKCChs.jpg" rel="gallery"><img class="img-center" src="/_pics/articles/cT89QKCChs.jpg" alt="v" /></a></p>
结果如下:

如果我如上图所示放置光标,并按DELETE键,则会得到以下结果:

到目前为止,一切都很好,只是当我检查代码时,它看起来是这样的:

<p><a href="/_pics/articles/large/cT89QKCChs.jpg" rel="gallery"><img class="img-center" src="/_pics/articles/WAbOlemChF.jpg" alt="b" /><img class="img-center" src="/_pics/articles/cT89QKCChs.jpg" alt="v" /></a></p>
请注意,A标记已合并。正如您想象的那样,这会引发一个大问题,因为href属性不同。我本以为它会把两个A标签放在同一个段落中,但要保持它们的不同

这是一个TinyMCE bug,还是配置中有一些我可以调整的东西,使其只合并相同的a标签


我使用的是v3.5.6,jQuery版本。

我们有很多wierd delete行为,可能是因为浏览器有bug。
解决方案是处理delte进程并执行自己的操作以绕过默认行为。为此,我们定义了几个不需要的事情发生的场景,并尝试隔离这些情况以便能够纠正它。

如果您不想TinyMCE弄乱您的代码,只需给它一个类。这在WordPress实现中起作用,所以希望它也能对您起作用

例如

<p class="image"><a href="/_pics/articles/large/WAbOlemChF.jpg" rel="gallery"><img class="img-center" src="/_pics/articles/WAbOlemChF.jpg" alt="b" /></a></p>
<p class="image"><a href="/_pics/articles/large/cT89QKCChs.jpg" rel="gallery"><img class="img-center" src="/_pics/articles/cT89QKCChs.jpg" alt="v" /></a></p>

该类不必定义,只要在需要时给它一个空类即可。关键是,TinyMCE不会删除任何具有类的内容,因此您的代码应该保持不变。

那么,您是说,如果不深入TinyMCE的源代码,这是无法修复的?不幸的是,对于这个项目来说,必须解决这种情况。有什么想法吗?不,你不必进入核心代码,你可以使用自己的插件或设置配置参数来完成这项工作,并监听tinymce事件onKeyDown和onkeydup,然后检查是否需要更正,并在必要时应用它停止传播。好的,事实证明,在我在Firefox中测试的Chrome中,最初的代码看起来已经像第二幅图像了,你甚至不能将光标放在那里然后按DELETE键。此外,如果将光标放在同一行的第一个图像之后,然后按DELETE键,则不会发生任何事情。这并不理想,但无论如何,Firefox会更好。不管怎么说,你的建议听起来很有趣,但我听不懂。谢谢,但不管用。即使段落和锚点上有不同的类,它仍然将它们合并在一起。这太可惜了。必须是WP实施的方式。对不起,我帮不上忙。你可以试试CKEditor吗?我希望我不必求助于它,因为这个项目已经完成了,除了这个小错误:通过在Firefox中放置SPAN标记而不是P标记来修复它,现在它在Chrome中被破坏了。这让我回到了IE6和Netscape Navigator的美好时光。