2011-07-14 383 views
2

這段代碼有什麼問題?插入圖像後,我會看到「J是未定義的消息」。我想這會發生,而我試圖關閉自己。TinyMCE:j is undefined

var ImageDialog = 
{ 
    init : function() 
    { 
     var f = document.forms[0], ed = tinyMCEPopup.editor; 
     e = ed.selection.getNode(); 
     if (e.nodeName == 'IMG') 
     { 
      f.src.value = ed.dom.getAttrib(e, 'src'); 
     } 
    }, 

    update : function() 
    { 
     var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el; 

     tinyMCEPopup.restoreSelection(); 

     if (f.src.value === '') 
     { 
      if (ed.selection.getNode().nodeName == 'IMG') 
      { 
       ed.dom.remove(ed.selection.getNode()); 
       ed.execCommand('mceRepaint'); 
      } 

      tinyMCEPopup.close(); 
      return; 
     } 

     tinymce.extend(args, 
     { 
      src : f.src.value 
     }); 

     el = ed.selection.getNode(); 

     if (el && el.nodeName == 'IMG') 
     { 
      ed.dom.setAttribs(el, args); 
      tinyMCEPopup.editor.execCommand('mceRepaint'); 
      tinyMCEPopup.editor.focus(); 
     } 
     else 
     { 
      ed.execCommand('mceInsertContent', false, '<img src="'+args['src']+'" id="_mce_temp_rob" alt="" />', {skip_undo : 1}); 
      ed.undoManager.add(); 
      ed.focus(); 
      ed.selection.select(ed.dom.select('#_mce_temp_rob')[0]); 
      ed.selection.collapse(0); 
      ed.dom.setAttrib('_mce_temp_rob', 'id', ''); 
      tinyMCEPopup.storeSelection(); 
     } 

     tinyMCEPopup.close(); 
    }, 

    getImageData : function() 
    { 
     var f = document.forms[0]; 
     this.preloadImg = new Image(); 
     this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value); 
    } 
}; 

tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog); 
+1

我假定您使用的是TinyMCE的壓縮版本。你可以嘗試使用未壓縮的版本,並用新的錯誤更新問題嗎? – icktoofay

回答

4

這是一個tinymce錯誤。在內部,tinymce代碼在粘貼時使用<span id="mce_marker"></span>來記住插入符號的位置。在驗證生成的片段時,在粘貼之後,跨度被認爲是無效並被移除,從而通過移除標記來破壞代碼。 此問題將在下一個官方的tinymce次要版本中修復。有這種問題的一些解決方法。一種是添加idmce-data-type屬性至spansas valid elements (init setting)。例如:

// The valid_elements option defines which elements will remain in the edited text when the editor saves. 
    valid_elements: "@[id|class|title|style]," + 
    "a[name|href|target|title]," + 
    "#p,-ol,-ul,-li,br,img[src],-sub,-sup,-b,-i,-u" + 
    "-span[data-mce-type]", 
+1

謝謝。你是對的。我也發現它..這是一個Tinymce錯誤。 – Yakup

+2

在這種情況下,它將很高興接受這個答案 – Thariama

+0

接受按鈕大聲笑 – Yakup