私はTinyMCEとドラッグ&ドロップ画像アップロードがうまく機能しています。私はimages_upload_url: 'handler.php'
を指定し、データを受け取って適切に処理するハンドラを作成しました。TinyMCE画像アップロードオーバーライドimages_upload_handler
しかし、イメージがページにドロップされた時点で、クライアント側からhandler.phpに動的に渡したい1つの追加のパラメータが1つあります。
独自のimages_upload_handler関数を記述することで、独自の関数をロールバックすることができます。これで十分ですが、私はむしろ簡単にするために既存のTinyMCEを使用したいと思います。私はどうやら動的にimages_upload_urlを動的に変更して、デフォルトのimages_upload_handler関数が実行される直前にGETパラメータ(たとえば?foo = bar)を動的に追加できる方法があるのだろうかと疑問に思っていましたか?または、images_upload_handlerのために私自身の関数を指定する方法がありますが、その後、デフォルトの 'parent' TinyMCE関数を直後に呼び出しますか?
tinyMCE.init({
selector: 'textarea',
images_upload_url: 'handler.php',
images_upload_handler: function (blobInfo, success, failure) {
// change images_upload_url to handler.php?foo=bar
// call default TinyMCE images_upload_handler function.
}
})
または代わりに、むしろ直接images_upload_handlerを上書きするよりも、私は画像の上にドロップされた後にフックすることができます関数やイベントがある:私は(ちょうどモックアップ/アイデアのように)このようなものを考えていますimages_upload_handlerが起動する前に、
編集:
I動的ようinit_instance_callbackイベントにimages_upload_urlを設定する別のアプローチを試みた:
images_upload_url: 'handler.php',
init_instance_callback : function(ed) {
ed.settings.images_upload_url += '?foo=bar';
console.log('changed images_upload_url to: ' + ed.settings.images_upload_url);
}
その場合にconsole.logが実際に変更「handler.phpを出力しますか? foo = bar '、それは実際にイメージをアップロードすることになるが、それはhandler.phpに戻る - 正しく変更されていないようだ?
ありがとうございました。私はこのアプローチを試しましたが、私のアプリは1ページのアプリです。各画面の読み込み/変更はjsによって制御され、最初のinitはアプリケーションの最初のPHPページのロード時に1回だけ起動されます(1回だけ発生します)。したがって、このアプローチを試みると、最初のロード時に変数が正しくロードされますが、各javascript画面が変更されると、js側で変更される新しい動的変数で更新されません。 これは、パフォーマンスの理由から、各ページの変更時にinitを呼び出す必要がないように行われました。 – Manachi
その場合は、この値を変更するたびにエディタを削除して再初期化する必要があります。 –
私はそれを避けることを望んでいましたが、そのようになり、各ページの変更でエディタを再初期化し、これまでのところうまく動作しているようです。 技術的には私が行ったフォローアップのコメントだったにもかかわらず、私は答えをチェックしました。しかし、あなたの答えは、初期設定後に設定を変更できないことを確認することによっても助けられました。私はそれを使って壁に頭を打つのをやめました。あなたの助けをありがとう:) – Manachi