【发布时间】:2013-02-04 10:44:48
【问题描述】:
tinyMCE 遇到了一个奇怪的问题。
似乎正在发生的事情是,我们为页面上的多个文本区域提供了一个或多个 tinymce 实例。对于此调试,我们删除了除一个之外的所有实例,因此它不会与此混淆,并且问题仍然存在。
问题是,当您加载页面时,配置会正确加载,当我们检查 verify_html 时,我可以在调试器中看到它,它按照配置的预期设置为 false。但是,当您使用“编辑 html 源代码”按钮,输入一些示例数据并单击更新时,一些标签会被删除。
我们使用的是最新的 tinymce (3.5.8),我区分了我们使用的和您可以下载的,它是相同的。
到目前为止,我发现当您初始化 tinymce 并进入第 1964 行时(在使用 js 美化器进行调试之后),它会执行此操作 A = A || {};所以在初始初始化中,我们得到了 A 的正确选项对象。我们设置的所有配置参数都符合预期,verify_html 设置为 false。这反过来又将 valid_elements 设置为允许一切。
if (A.verify_html === false) {
A.valid_elements = "*[*]"
这很好用,但是当我们输入一些 html 并单击更新时,当我们来到这一行时,对象 A 是空的并且不包含我们设置的任何选项。这意味着一些 html 被解析出来。过去有人遇到过这个问题吗?
我对 tinyMCE 不是很熟悉,所以希望能在这个问题上提供一些帮助,包括堆栈跟踪和选项配置,但我很确定它与选项无关,因为它们似乎没有被拾取一切都是为了检查 A 是否存在。
对于堆栈跟踪,这是初始化期间的跟踪:
f.html.Schema (tiny_mce.js:1964)
k.create.initContentBody (tiny_mce.js:9863)
k.create.init (tiny_mce.js:9832)
k.create.render (tiny_mce.js:9666)
a.dom.ScriptLoader.loadScripts.d.length (tiny_mce.js:7221)
c.each (tiny_mce.js:110)
a.dom.ScriptLoader.loadScripts.o (tiny_mce.js:7220)
a.dom.ScriptLoader.loadScripts.d.length (tiny_mce.js:7215)
p (tiny_mce.js:7117)
更新文本期间的堆栈跟踪
f.html.Schema (tiny_mce.js:1964)
a.html.Serializer (tiny_mce.js:3358)
u (editor_plugin.js:1)
tinymce.create.objectToImg (editor_plugin.js:1)
tinymce.create.init.n.onPreInit.add.n.serializer.addNodeFilter.v (editor_plugin.js:1)
b.html.DomParser.f.parse (tiny_mce.js:3174)
k.create.setContent (tiny_mce.js:10372)
saveContent (source_editor.js:5)
onsubmit (source_editor.htm:33)
初始化配置:
tinyMCE.init({
mode : "specific_textareas",
editor_selector : "editorunfiltered",
dialog_type : "modal",
urlconvertor_callback : "myURLConvertor",
setup : function(ed) {
ed.onPreProcess.add(function(ed, o) {
if (o.node.nodeName.toLowerCase() == "body")
o.getInner = true;
});
},
verify_html : false,
relative_urls : false
});
我正在尝试提交到 tinymce 的代码:
<object classid="clsid:D27CDB6E-AAAA-1111-2222-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="391" height="600">
<param name="movie" value="/imapbuilder/loader.swf" />
<param name="base" value="/imapbuilder/" />
<param name="flashvars" value="datasource=ambassadors.xml" />
<param name="loop" value="false" />
<param name="menu" value="true" />
<param name="quality" value="best" />
<param name="wmode" value="transparent" />
<param name="bgcolor" value="#ffffff" />
<param name="allowScriptAccess" value="always" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="/imapbuilder/loader.swf" width="391" height="600">
<param name="movie" value="/imapbuilder/loader.swf" />
<param name="base" value="/imapbuilder/" />
<param name="flashvars" value="datasource=ambassadors.xml" />
<param name="loop" value="false" />
<param name="menu" value="true" />
<param name="quality" value="best" />
<param name="wmode" value="transparent" />
<param name="bgcolor" value="#ffffff" />
<param name="allowScriptAccess" value="always" />
<!--<![endif]--><!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
【问题讨论】:
标签: javascript tinymce