2011-07-20 92 views
3

我得到在Firefox和Opera JavaScript错误,当我使用TinyMCE的:TinyMCE的浏览器“修复”

j is null 
(function(d){var a=/^\s*|\s*$/g,e,c="B...a.selection.onSetContent.add(f)})}}); 

此错误出现后,我救textarea的内容为第二次,第一次它得到保存...

因为它在其他浏览器(IE和Chrome)中工作正常,我认为这个问题是在“TinyMCE”修复Opera和Firefox可能也运行.. 。

有什么办法可以阻止这些浏览器应用这些修复程序?无论如何,这似乎对我来说是一个浏览器试图修复第三方脚本荒谬

+1

Firefox不运行任何TinyMCE特定的修补程序。 –

+1

嗨,亚历克斯,我亲自编写了每个TinyMCE“修复”Opera应用。如果你有更少的“荒谬”的方法来解决这些compat问题,我很乐意听到他们:-) – hallvors

+0

好吧不要误会我looove歌剧,但为什么这样一个伟大的浏览器试图修复一个错误的js应用程序像TinyMCE? :/ – Alex

回答

2

这是一个tinymce错误。在内部,tinymce代码在粘贴时使用<span id="mce_marker"></span>来记住插入符号的位置。在验证生成的片段时,在粘贴之后,跨度被认为是无效并被移除,从而通过移除标记来破坏代码。 此问题将在下一个官方的tinymce次要版本中修复。有这种问题的一些解决方法。一种是将idmce-data-type属性添加到spansas valid elements (init setting)。例如:

// The valid_elements option defines which elements will remain in the edited text when the editor saves. 
    valid_elements: "@[id|class|title|style]," + 
    "a[name|href|target|title]," + 
    "#p,-ol,-ul,-li,br,img[src],-sub,-sup,-b,-i,-u," + 
    "-span[data-mce-type]", 
相关问题