2012-10-31 48 views
1

這是我面臨的「未捕獲的ReferenceError:T沒有定義」試圖刪除具有TinyMCE的實例

  1. 的問題,我有一個包含TinyMCE的實例一個div一個div。
  2. TinyMCE的的這個實例是同一div
  3. 內的無序列表內當我嘗試刪除主DIV上的一個按鈕的點擊我收到 「未捕獲的ReferenceError:T沒有定義」的錯誤。
  4. 但是當我雙擊該按鈕在div被刪除。但我想第一次點擊 刪除div。
  5. 我試圖tinymce.execCommand( 'mceRemoveControl',假,tinymceId); (tinymceID 是TinyMCE的textarea的ID)要刪除TinyMCE的實例,但無濟於事

下面是我使用刪除DIV

$('div.form').on('click','a.cancel-btn',function(e){ 
    var kk = $(this); 
    e.preventDefault(); 

    $('.dialog').html('Are you sure you wish to delete this asset ? Selecting \'Yes\' will delete this asset.');  
    $('.dialog').dialog({ 
     buttons:{ 
      "Yes": function() { 
       tinymceId = kk.closest('div.box2').find('textarea').attr('id'); 
       if (typeof(tinymceId) == 'string') { 
        if (tinyMCE.getInstanceById(tinymceId) != null) 
        { 
         tinymce.triggerSave(); 
        tinymce.execCommand('mceFocus', false, tinymceId); 
        tinymce.execCommand('mceRemoveControl', false, tinymceId); 
         //tinyMCE.execCommand('mceFocus', false, tinymceId); 
         kk.closest('div.box2').find('textarea.tinymce_new').tinymce().remove();     
        } 

        kk.closest('div.box2').find('textarea').remove(); 
        kk.closest('div.box2').find('textarea').remove(); 

       } 
       //tinyMCE.myClass.remove(); 
       kk.closest('div.box2').remove(); 
       $(this).dialog("close"); 
       kk.click(); 
      }, 
      "Close": function() { $(this).dialog("close"); } 
     } 
    }); 
}); 
+3

請發表您的JS。 –

+0

你確定這是與tinymce做,而不只是一個變量範圍的問題嗎?通過嘗試在未初始化tintmce的情況下刪除主div來檢查。 –

+0

是的,我敢肯定,因爲有在同一個頁面的其他div的,我做這並不表明這個錯誤,但只有當我嘗試刪除與TinyMCE的股利這個錯誤表示了同樣的方式去除。如果我從div中刪除tinymce,它將被刪除而不會出現問題 – user1788398

回答

0

我不知道這是否代碼與你有關,因爲你還沒有發佈你的tiny_mce初始化代碼。關閉一個tiny_mce的fancybox時,我遇到了同樣的問題。你有正確的解決方案,即你需要調用這個在關閉:

tinyMCE.execCommand('mceFocus', false, tinymceId); //this is also needed apparently to avoid problems in IE 
tinyMCE.execCommand('mceRemoveControl', false, tinymceId); 

不過我想這並沒有工作,因爲我用的是jQuery的方法初始化tiny_mce:

$('textarea.tinymce').tinymce({ 
    //init code here 
}); 

如果你初始化使用這個方法,然後mceRemoveControl不起作用,我不知道什麼是jQuery替代。

我的解決辦法是使用標準的js初始化像這樣:

tinyMCE.init({ 
    //init code here 
}); 

你的頁面laods /的fancybox與打開後你再叫它:

tinyMCE.execCommand('mceAddControl', false, tinymceId); 

如果初始化TinyMCE的這樣便removeControl的作品(至少它爲我做了)。希望這有助於

相關問題