window.close閉じない!Edge切替運用の課題

window.close閉じない!Edge切替運用の課題

ブラウザの変更や、バージョンアップでフロント側の問題は発生しがちですよね….

今回は、前回に引き続き「IE」のサポート終了に伴う課題について挙げたいと思います

「window.close」エラー発生です!!

では、見ていきましょう

⇓ 前回は、「IME変換制御ができなくなった」のような記事を上げました


1. window.close使えない!?

今回は、「window.closeでエラーが起きる!」という問題です。

たとえば、Webアプリケーションで「閉じる」というボタンに、クリックした際にウィンドウを閉じる処理(window.close)を実装していたとします。

IE ⇒ Edge にブラウザを切り替えて、アプリを起動し「閉じる」ボタンを押してみると…

「ウィンドウが閉じない!!」のです。(何も起きないのです…)

Edgeでは、「window.open」で起動されたウィンドウに関しては適用されるのですが、画面遷移などで表示されているウィンドウは閉じられません…(エラーが起きる)


2. 解決策ないの…!?

代替え案として、アプリ自体を落ちさせるというのはできます

実装は画面をblank表示させ(アプリを閉じたようにする)、運用として使用者に「×」を押してもらいウィンドウを閉じてもらうといったものです

「window.close」から以下の実装に変更します

window.open('about:blank','_self).close();

上記のたとえですと、
ソース変更したの後、「閉じる」ボタンを押下すると 以下のようにウィンドウが表示されます

運用でこのウィンドウを閉じてもらうといった感じです

これが限界なんですかね…(笑)


3. さいごに

ブラウザの問題は難しいですね

ブラウザの変更やアップデートによるhtmlやJavaScriptは非常に影響が大きいです

セキュリティ観点で厳しくなり、今まで使えたものが使えなくなったというのはこれからも増えてくると思います
(Edgeは短いスパンでアップデートされてますよね…)

これから発生する問題に対して、技術者が知識を共有しあい、解決していけたらなと思います

なお、今回の解決策はほんの一部にすぎません

他にも解決策は多く存在するでしょう

何か他にも案があれば、ご教授ください

ではっ


この記事をSNSでシェア!

是非フォローしてください

最新の情報をお伝えします

コメントを残す