1

これが私が直面している問題です

  1. Tinymceのインスタンスを含むdivがあります。
  2. このtinymceのインスタンスは、同じdiv内の順序付けられていないリスト内にあります
  3. ボタンをクリックしてメインdivを削除しようとすると、「Uncaught ReferenceError:tisnotdefined」エラーが発生します。
  4. しかし、ボタンをダブルクリックすると、divが削除されます。しかし、最初のクリックでdivを削除したいと思います。
  5. 私はtinymce.execCommand('mceRemoveControl'、false、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"); }
        }
    });
});
4

1 に答える 1

0

tiny_mce 初期化コードを投稿していないため、これがあなたに関連しているかどうかはわかりません。tiny_mce が入ったファンシーボックスを閉じるときに同じ問題が発生しました。解決策は正しいです。つまり、閉じるときにこれを呼び出す必要があります。

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 init を次のように使用することでした。

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

次に、ページ laods/fancybox を開いた後に呼び出します。

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

このようにtinyMCEを初期化すると、removeControlが機能します(少なくとも私にとってはそうでした)。お役に立てれば

于 2013-01-07T19:34:28.937 に答える