4

私はjQueryプラグインでTinyMCE3.5を使用しています。

モードが指定されていないtinyMCE.init()メソッドを使用していて、次のコマンドを使用してエディターを要素にアタッチしています。

tinyMCE.execCommand('mceToggleEditor',false,jQuery(this).attr('id'));

エディターはInternetExplorer8で正常に読み込まれますが、「オブジェクトが必要です」エラーがスローされます

エラーは、次のように22行目のForceBlocks.jsからスローされます。

21 while (node != rootNode) {
22   if (blockElements[node.nodeName])
23     return;
24 
25   node = node.parentNode;
26 }

Firefox、Chrome、Safariではエラーは発生しません。

tinyMCE.execCommandメソッドのコンテキストは次のとおりです。

ADMIN = {
  triggerTextArea: function (event) {

    currentTarget = event.currentTarget;

    if(jQuery(currentTarget).hasClass('ajaxform'))
    {
      textareas = jQuery(this).find('.question-text-editor textarea');
      addTextArea = true;
    } else {
      textareas = jQuery(this).closest('.question-wrapper').find('.question-text-editor textarea');    
      addTextArea = (jQuery(this).is(':checked') && jQuery(this).val() == 'html');
    }


    if(addTextArea == true)
    {
      textareas.each(function() {
          console.log(jQuery(this).attr('id'));
          tinyMCE.execCommand('mceToggleEditor',false,jQuery(this).attr('id'));

        });



    } else {
      textareas.each(function() {
        editorId = jQuery(this).attr('id');
        tinymce.get(editorId).hide(); 
      });

    }
  }
}

  if(addTextArea == true)
  {
    textareas.each(function() {
        console.log(jQuery(this).attr('id'));
        tinyMCE.execCommand('mceToggleEditor',false,jQuery(this).attr('id'));

      });



  } else {
    textareas.each(function() {
      editorId = jQuery(this).attr('id');
      tinymce.get(editorId).hide(); 
    });

  }
}
}
4

1 に答える 1

1

forced_root_block関連する質問でカバーされています。IEの場合、execCommand loadイベントの直後にエディターが使用できない場合は、ドキュメントをポーリングする必要があります。

于 2012-10-17T19:54:36.680 に答える