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 呼出し インスタンス 取得 タブ データの受け渡し