2016-07-21 4 views
1

私はキャンバスを持つページを持っています。ここで、ユーザーは「テキストの追加」ボタンでテキストを追加できます。ユーザーがこれをクリックすると、新しいTinyMCEがキャンバスのすぐ上に作成されます。私はこの新しいTinyMCEを変更したいと思いますが、私はtinyMCEの作成コード(init)にアクセスできないので、 `document.ready() 'のTinyMCEのための何らかの" init listener "を持っていなければなりません。TinyMCEがページ上で開始/作成されるかどうかを確認するには?

私はあなたがこのようなTinyMCEをの初期化にコールバックを行うことができます知っている:私はTinyMCEをの作成コードに到達することはできません言ったよう

setup: function (ed) { 
    ed.on('init', function(args) { 
     console.debug(args.target.id); 
    }); 
} 

しかし。

新しいTinyMCEインスタンスが作成されている(JavaScriptで使用している)のを確認するにはどうすればよいですか?

+0

TinyMCEが作成されたことを知ったら、正確に何をしたいですか?あなたが言及している機能は、TinyMCEの準備ができているかどうかを知る最も簡単な方法です...しかし、私はあなたがしたいことがこのAPIフックではできないことを知ることに興味があります。 –

+0

私は、tinyMCEの準備ができたらツールバーを変更したいと思います。私はTinyMCE initの設定を変更することができないので、私の質問で説明した関数を使用することはできません。 – moffeltje

+0

TinyMCEでは、エディタがロードされるとツールバーを変更できません。 initオブジェクトを直接変更できない場合でも、実際にTinyMCEを呼び出す前に、常にJavaScriptを使用してinitオブジェクトを変更することができます。 –

答えて

1

ページに設定オブジェクトがありますが、設定を変更したい場合は、JavaScriptを使用して標準のinitをページ単位で変更または拡張することができます。

たとえば、標準の設定で起動します。

baseConfig = { 
    selector: 'textarea' 
    .... 
} 

を...これはあなたがTinyMCEをを初期化するためにそれを使用する前に、そのオブジェクトに追加のプロパティ/メソッドを注入することができるだけの簡単なJavaScriptオブジェクトであるため。例えば

customConfig = { 
    image_advtab: true, 
    content_css : "CSS/content.css?" + new Date().getTime(), 
    setup: function (editor) { 
     editor.on('init', function() { 
      //Do what you need to do once TinyMCE is initialized 
     }); 
    } 
} 

次にあなたがbaseConfigcustomConfigを "注入" することができます。

$.extend(baseConfig, customConfig); 

...これはcustomConfigからすべてのメソッドとプロパティを取り、baseConfigに追加されます:最も簡単な方法は、jQueryの拡張メソッドを使用することです。作業が完了したら、その後、新たに更新されたbaseConfigを使用してのTinyMCEをロードすることができます。

tinymce.init(baseConfig); 

ます。また、プロパティを削除するためにJavaScriptを使用することができます(deleteをよく読んで)ので、あなたも、あなたがしたくない設定プロパティを削除することもできますあなたのTinyMCE initで。

関連する問題