2009-07-24 8 views
13

TinyMCEをビジュアルエディタとして使用しているときに、TinyMCEコマンドを使用して本文のコンテンツ編集領域にテキストを挿入するプラグインを開発中です。現在のところ、コマンドを実行するだけで動作します。それが動作する場合、TinyMCEはアクティブであり、そうでない場合は、HTMLエディタを操作するカスタムJSがあります。TinyMCEがWordPressでアクティブかどうかを確認する方法

私の質問:しかし、TinyMCEがアクティブであるかどうかを確認する方法はありますか?

答えて

23

...私は自分自身のために質問に答えました。次のようにあなたがテストする条件は次のとおりです。

is_tinyMCE_active = false; 
if (typeof(tinyMCE) != "undefined") { 
    if (tinyMCE.activeEditor == null || tinyMCE.activeEditor.isHidden() != false) { 
    is_tinyMCE_active = true; 
    } 
} 

トリックはTinyMCEのが活性化していないときtinyMCE.activeEditorリターンがヌルということです。 isHidden()メソッドを使用して、HTMLエディタモードに戻ったときに実行されていないことを確認できます。

これは、TinyMCEのWebサイトやフォーラムではほとんど記述されていません。

+0

Thaks。これはうまくいった。 :) – Haris

+0

これは私のために働いていません。なんらかの理由で、HTMLモードでもビジュアルモードでも関係ありません。この問題を抱えている人は誰ですか? – Shaan

+1

私の問題は、tinyMCEエディタが読み込まれていないことと私は完全に読み込まれる前にチェックしていると思う。このチェックを行う前に、ロードされるまでどのように待つのですか? – Shaan

7

はい、私はワードプレスでそのコードを見た:ABSPATH/WP-含ま/ JS/autosave.js検索エンジンにランクこの質問として

// (bool) is rich editor enabled and active 
var rich = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden(); 
2

を提出します。私はダニエルズの答えを、私たちが単一のページに複数のワードプレスエディタを持っているときにサポートするために少し拡張するべきだと思う。

var is_editor_active = function(editor_id){ 

     if(typeof tinyMCE == 'undefined'){ 
      return false; 
     } 

     if(typeof editor_id == 'undefined'){ 
      editor = tinyMCE.activeEditor; 
     }else{ 
      editor = tinyMCE.EditorManager.get(editor_id); 
     } 

     if(editor == null){ 
      return false; 
     } 

     return !editor.isHidden(); 

    }; 

あなたが唯一の私はこのことを願っています

if(is_editor_active('mycontent'){ 
    // do stuff 
} 

をチェックするために必要な特定のIDを持つエディタ場合はアクティブなエディタに

if(is_editor_active()){ 
    // do stuff 
} 

をチェックする必要がある場合

を使用しますほとんど機能が他の人に役立つでしょう:)

関連する問題