TinyMCE игнорира опциите за стартиране при изпращане на данни

имам странен проблем тук с tinyMCE.

Това, което изглежда се случва, е, че имаме едно или повече копия на tinymce за множество текстови области на страницата. За това отстраняване на грешки премахнахме всички екземпляри освен един, така че да не се бърка с това и проблемът продължава да съществува.

Проблемът е, че когато заредите страницата, конфигурацията се зарежда правилно и мога да го видя в програмата за отстраняване на грешки, когато проверяваме verify_html, той е настроен на false, както се очаква от конфигурацията. Въпреки това, когато използвате бутона „редактиране на html източник“, въведете някои примерни данни и щракнете върху актуализиране, някои тагове се премахват.

Използваме най-новия tinymce (3.5.8), направих разлика между това, което използваме и това, което можете да изтеглите, и е идентично.

Това, което открих досега, е, че когато инициализирате tinymce и той стигне до ред 1964 (след използване на js beautifier за отстраняване на грешки), той прави това A = A || {}; Така че в първоначалното инициализиране получаваме правилния обект с опции за 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)

начална конфигурация:

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>

person OwlPaste    schedule 04.02.2013    source източник


Отговори (1)


Параметърът verify_html вече не е наличен от версия 3.3. Ще трябва да използвате параметрите valid_elements и valid_children, за да определите кой html код е валиден и кой не.

person Thariama    schedule 04.02.2013
comment
Сигурен ли си? Той е както в код, така и в списъка в конфигурацията за tinymce. tinymce.com/wiki.php/Configuration:verify_html Определено разполагаме с най-новия версия. Във всеки случай се опитах да предам valid_elements също, нямаше ефект. Ако е възможно, ще ме насочат към функция, която се занимава с анализиране на html, така че да мога да премина през нея и да разбера повече? Малко съм изгубен къде е този. Между другото, благодаря за отговора - person OwlPaste; 04.02.2013
comment
той е посочен, но не функционира от версия 3.3 - person Thariama; 04.02.2013
comment
О, разбирам, използвах valid_elements преди, както с [], така и използвайки стандартните и пълните набори от правила xhtml, които са изброени в ръководството, но без резултат. Редактирах оригиналната публикация, за да включва кода, който се опитвам да вмъкна. Това, което се филтрира, са атрибутите classid и codebase. Някакви идеи, които мога да опитам да отстраня този проблем допълнително? @Thariama Благодаря за отговорите между другото! - person OwlPaste; 05.02.2013
comment
valid_elements = [] не работи поради грешка. можеш ли да създадеш tinymce цигулка? fiddle.tinymce.com/ - person Thariama; 05.02.2013
comment
Fiddle Така че това е до голяма степен по подразбиране, като се използва набор от правила по подразбиране, който съдържа атрибути както на classid, така и на кодова база на обектния елемент . От това, което разработих с valid_children, добавих обекта. Когато поставите кода по-горе, той все още анализира кодовата база и classid от обекта. - person OwlPaste; 05.02.2013
comment
Не можах да го разбера сам, въпреки че настройките, които взех, не работеха. Публикувах въпрос във форума на tinymce - да видим какво ще отговорят. - person Thariama; 05.02.2013