TinyMCE忽略提交数据的init选项

时间:2013-02-04 10:44:48

标签: javascript tinymce

在这里与tinyMCE有一个奇怪的问题。

似乎正在发生的事情是我们在页面上有多个文本区域的一个或多个tinymce实例。对于这个调试,我们删除了除一个实例之外的所有实例,因此它不会与此混淆,问题仍然存在。

问题在于,当您加载页面时,配置会被正确加载,当我们检查verify_html时,我可以在调试器中看到它,它按照配置的预期设置为false。但是,当您使用“编辑html源”按钮时,输入一些示例数据并单击更新,某些标记将被删除。

我们正在使用最新的tinymce(3.5.8),我将我们使用的内容与你可以下载的内容区分开来,它是相同的。

我到目前为止所发现的是,当你初始化时,它出现在第1964行(使用js美化器进行调试之后),它会这样做A = A || {};因此,在初始init中,我们为A获取了正确的选项对象。其中我们设置的所有配置参数都是预期的,并且verify_html设置为false。反过来设置valid_elements以允许一切。

if (A.verify_html === false) {
            A.valid_elements = "*[*]"

这很好,但是当我们输入一些html并点击更新时,当我们来到这个行时,对象A是空的,不包含我们设置的任何选项。这意味着一些html被解析出来。有没有人在过去遇到过这个问题?

我对tinyMCE不是很熟悉,所以会很感激这个问题的一些帮助,包括堆栈跟踪和选项配置,但我很确定它与选项无关,因为它们似乎没有被选中一切都是为了检查A是否存在。

对于堆栈跟踪,这是init期间的跟踪:

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)

init config:

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>

1 个答案:

答案 0 :(得分:0)

自版本3.3起,参数verify_html不再可用。 您必须使用参数valid_elementsvalid_children来定义哪些HTML代码有效以及哪些不有效。