私が取り組んでいるアプリケーションには複数のモジュールがあります。私が書いた主なモジュールとモジュールの2つが関心事です。そして、私はメインモジュールを含むウィンドウ上の関数を呼び出さなければならず、問題は親Webモジュールによって開かれたページからではなく、ユーザーがこのページからナビゲートするページからその関数を呼び出さなければならないということです。オープナー変数をページナビゲーション全体に伝播する最良の方法は?
基本的に最初のページはクエリフォームを表示し、ユーザーにクエリを実行させ、2番目のクエリ結果を保持します。これらの結果に基づいて親ページの内容を更新するはずです。
ナビゲーションはその
- メインモジュール
- 私のモジュールの最初のページ(私は
window.opener
変数としてメインモジュールのページを持っている。 - 私のモジュールの2ページ目(のように行くと私はなりたいです
そして、私は可能な限り自由なナビゲーションをしたいと思っています - 開かれたクエリの結果のように私は新しいタブ、新しいクエリーパラメータの変更、新しいクエリーの作成などがあります。また、結果を表示するページにユーザークエリーフォームを表示して、このクエリーを修正してメインモジュールを更新できるようにしたいと思います。
私は、次の解決策を考えていた:最初のウィンドウにクエリ結果をロードするためにAJAXを使用した
- 、私はできるだけシンプルなこのアプリを持っていると思います、とAJAXは簡単ではありません。
- )すべてのリクエストに新しいウィンドウを作成し、
var mainModule = opener.mainModule
のようなコードを作成する。それは悪です。 - 埋め込みクエリの結果はフレームまたはiframeになりますが、メインモジュールのウィンドウのJavaScript変数をフレームまたはiframeに挿入する方法についてはちょっと考えました。
私の回答を考えています。しかし、まず、ユーザーがこれらのタブを開くことができるようにしたいとコメントしたいと思います(最初と2番目など)。ページがタブで開かれると、ほとんどのブラウザは「オープナー」へのリンクを切断します。次に、「クエリとクエリ結果」はすべて「メイン」モジュールではなく、「自分の」モジュールから実行されますか?第3に、すべてのページは同じドメインにありますか?明確にすることができれば(できれば簡単な例の構造で)、役立つでしょう。ありがとう。 –
私の「第2の」質問への答えは、すでに第2段落に記載されています。 :) –
同じドメインになります。それをタブで開くことについては、要件ではありません。私はそれを動作させたいと思いますが、それは必須条件ではありません。私が考えることができるのは、新しいウィンドウで開くウィンドウオープナーを呼び出す新しいリンク「新しいタブ/ウィンドウを開く」を追加することです。 –