2013-02-04 71 views
1

在tinyMCE中出現了一個奇怪的問題。TinyMCE在提交數據時忽略初始化選項

看來正在發生的事情是,我們有一個或多個tinymce實例用於頁面上的多個文本區域。對於這個調試,我們刪除了除一個實例外的所有實例,所以它不會與此混淆,並且問題仍然存在。

的問題是,當加載頁面,配置文件會正確加載,我可以看到它在調試程序時,我們檢查verify_html,它被設置爲false通過配置預期。但是,當您使用「編輯html源碼」按鈕時,輸入一些示例數據並點擊更新,一些標籤將被刪除。

我們使用的是最新的TinyMCE(3.5.8),我顯示差異就是我們使用VS一個你可以下載,它是相同的。

我找到了迄今爲​​止的是,當你initialsie TinyMCE的,它涉及到1964年行(使用調試JS美化後),它這樣做A = A || {};因此,在最初的init中,我們爲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> 

回答

0

參數verify_html已不存在,因爲3.3版本。 您必須使用參數valid_elementsvalid_children來定義哪些html代碼是有效的,哪些不是。

+0

確定嗎?它在代碼中並在配置中列出,用於tinymce。 http://www.tinymce.com/wiki.php/Configuration:verify_html 我們絕對擁有最新版本。無論如何,我也嘗試過傳入valid_elements,但它沒有效果。 如果可能的話,我會指出一個處理html解析的函數,所以我可以通過它來了解更多信息?對於那個位置我有點失落。 順便說一句,感謝您的回覆 – OwlPaste

+0

它已被列出,但從3.3版本開始不起作用 – Thariama

+0

哦,我明白了,我之前使用過valid_elements,它們都帶有* [*],並使用列出的默認和完整xhtml規則集在手冊中,但無濟於事。編輯原始文章以包含我試圖粘貼的代碼。 被過濾出來的東西是classid和codebase屬性。我可以嘗試進一步調試此問題的任何想法? @Thariama 感謝您的答覆! – OwlPaste