JavaScript の Window オブジェクトからExtjs のインスタンスを取得する方法
現在、window.postMessage() を使って、ブラウザのタブ間で連携を行っています。
タブ間で連携するので、window.open() を使って、タブを新規作成するのですが、戻り値は タブのwindow オブジェクトです。
逆に、window.postmessage のイベントwindow.addEventListener("message", hoge); の hogeメソッドで受け取るevent 内に、呼び出し元windowオブジェクトが含まれています。(event.source)
という訳で、windowオブジェクトから、Extjsのインスタンスが取得できると、両方でのやり取りが簡単になります。
という訳でやり方:
window.Ext.ComponentQuery.query('hogehoge');
tab.Ext.ComponentQuery.query('hogehoge');
や
event.source.Ext.ComponentQuery.query('hogehoge');
も可能
この処理で、Extjsのインスタンスが取得できます。
もちろんこれは配列で帰ってくるので、[0] などの配列インスタンスを取得して下さい。
ただ、やりすぎるとどこから動いているか分からなくなるので、独自ルールを作っています。
window.Ext.ComponentQuery.query('viewport')[0].fireEvent('XXXXXX');
こうする事で、必ず viewport でイベントを発生させることが出来ます。
イベントなのでコントローラーで受け取れ、処理も出来ます。
外部からは、必ずViewportのイベントにすることにより、処理の流れが多少見やすくなります。
(私はViewport用のコントローラーはほとんど何も書いて無いから特に分かりやすい)
何かの参考になれば…と思います。
(私は忘れないために…)
検索用:Extjs4 window オブジェクトから Ext 呼出し インスタンス 取得 タブ データの受け渡し
タブ間で連携するので、window.open() を使って、タブを新規作成するのですが、戻り値は タブのwindow オブジェクトです。
逆に、window.postmessage のイベントwindow.addEventListener("message", hoge); の hogeメソッドで受け取るevent 内に、呼び出し元windowオブジェクトが含まれています。(event.source)
という訳で、windowオブジェクトから、Extjsのインスタンスが取得できると、両方でのやり取りが簡単になります。
という訳でやり方:
window.Ext.ComponentQuery.query('hogehoge');
tab.Ext.ComponentQuery.query('hogehoge');
や
event.source.Ext.ComponentQuery.query('hogehoge');
も可能
この処理で、Extjsのインスタンスが取得できます。
もちろんこれは配列で帰ってくるので、[0] などの配列インスタンスを取得して下さい。
ただ、やりすぎるとどこから動いているか分からなくなるので、独自ルールを作っています。
window.Ext.ComponentQuery.query('viewport')[0].fireEvent('XXXXXX');
こうする事で、必ず viewport でイベントを発生させることが出来ます。
イベントなのでコントローラーで受け取れ、処理も出来ます。
外部からは、必ずViewportのイベントにすることにより、処理の流れが多少見やすくなります。
(私はViewport用のコントローラーはほとんど何も書いて無いから特に分かりやすい)
何かの参考になれば…と思います。
(私は忘れないために…)
検索用:Extjs4 window オブジェクトから Ext 呼出し インスタンス 取得 タブ データの受け渡し
コメント
コメントを投稿