【问题标题】:TinyMCE ignoring init options on submitting dataTinyMCE 忽略提交数据的初始化选项
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 你确定吗?它既在代码中,也在tinymce的配置中列出。 tinymce.com/wiki.php/Configuration:verify_html 我们肯定有最新版本。无论如何,我也尝试过传入 valid_elements ,但没有效果。如果可能的话,我会被指向一个处理 html 解析的函数,以便我可以浏览它并了解更多信息?我有点不知道那个人在哪里。顺便谢谢你的回复
    • 已列出,但自 3.3 版起无法使用
    • 哦,我明白了,我之前确实使用了 valid_elements,既与 [] 一起使用,也使用手册中列出的默认和完整 xhtml 规则集,但无济于事。编辑了原始帖子以包含我要粘贴的代码。被过滤掉的是classid和codebase属性。我可以尝试进一步调试此问题的任何想法吗? @Thariama 顺便感谢您的回复!
    • valid_elements = "[]" 因错误而无法工作。你能创造一个tinymce小提琴吗? fiddle.tinymce.com/
    • Fiddle 所以这几乎是默认的,使用默认规则集,其中包含对象元素的 classid 和 codebase 属性。根据我对 valid_children 的研究,我添加了该对象。当您粘贴上面的代码时,它仍然会从 object 中解析出 codebase 和 classid。
    猜你喜欢
    • 2017-01-22
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2013-05-04
    • 1970-01-01
    • 2018-01-30
    相关资源
    最近更新 更多