0

私は、JavaScript に関してかなり厄介な問題に直面しています。問題は、これがサード パーティのコードであり、公開 Web サイトでこのコードを使用することが許可されていない/できないことです。:-( これによりトラブルシューティングが非常に難しくなることは承知していますが、ご容赦いただければ幸いです。

状況は次のとおりです。

1)Page1チャット機能を開くために任意の Web ページから呼び出され、これは JavaScript ページで構成されます。このページでは、次を使用してページ識別子を設定します。YYYPage thisPage = htmlcSession.guiEngine.pageManager.yyyPage; このページの最後で、別の jsp ファイルへのインクルードが行われます。

2) このページが読み込まれると (ステップ 1 で説明したように)、このページは 2 番目のページを開き、結果のページを 5 つのセクションに分割します (ここではフレームが使用されています。コードは過去 xx 年間適用されていません)。

これらのフレームのそれぞれで異なる機能が提示され、これらのフレームのうちの 2 つが重要です。コントローラーフレームと呼ばれるトップフレームと、最終的に終了ページをロードする中間フレーム(アンサーフレームと呼ばれます)。

これらのフレームにはすべて「一意の」名前が付けられているため、終了ページに到達したときにYYYPage.Close();を呼び出してメイン ウィンドウを閉じることができるはずです。

質問はこれに帰着すると思います:
子ウィンドウの1つから親ウィンドウを閉じることは可能ですか(すべてのウィンドウがJavaScriptwindow.openコマンドによって開かれている場合!!)?

もしそうなら、どうすれば正しいウィンドウを参照できますか?

4

1 に答える 1

0

私はこれに対する答えを探していましたが、結局ハックを見つけました。私は答えのない質問が嫌いなので、これが私の解決策です。設定されたタイムアウトを使用して、親ウィンドウをだまして閉じさせることができます。何らかの理由で、これはスクリプトでセキュリティ ブロックをトリガーしません。

<a href="#" onclick="window.top.setTimeout('window.close()',1)">Close Window</a>
于 2018-06-07T01:31:47.023 に答える