имам странен проблем тук с 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>