【ホームページ制作】ブラウザもどんどん進化します。
皆さん、こんにちは。
スキル・バンク SEのW です。
先日、とあるクライアントから連絡をいただきまして、「閉じる」ボタンを押してもページ(タブ)が閉じないという現象が発生しているとのことでした。
「閉じる」ボタン、ご存知の方が多いと思いますが、別タブや別ウィンドウで開いたページによく設置されていて、それを押すとページ(タブ)が閉じるという便利なものです。
タブの×を押しても閉じられるのですが、そこまでマウスを持って行く必要もないし、モバイルの場合はそもそも×がありませんから。
この「閉じる」は、Javascriptというプログラム言語で実装することが多くて、私も大体はJavascriptを使っています。
という事で「Javascriptで何かエラーが起きているのかな?」というのが、最初に頭をよぎりました。
Javascriptは、プログラムのどこかでエラーが発生すると、それ以降のプログラムが動かなくなることが、よくあるのです。
とは言うものの、特にプログラムをいじった覚えもなく、まさに突然動かなくなったというのが実情です。
クライアントから連絡をいただいたページを見ると、確かに「閉じる」を押してもタブが閉じません。
プログラムにエラーがあるのかと思いましたが、特にエラーも出ていない。
そこで、連絡のあったページ以外のページで「閉じる」を押してみると、閉じる場合もある。
いろいろと現象について調べたところ、ChromeやFirefoxといった主要ブラウザで、子ウィンドウ(タブ)をJavascriptで閉じるのは有効なのですが、子ウィンドウのページが変わった(移動した)場合、無効になるように仕様が変わっていました。
つまり、
1.親ウィンドウを開く
2.子ウィンドウを別タブで開く
3.子ウィンドウでページ移動する
という操作をした場合、2はプログラムで閉じられますが、3は閉じられないということです。
元々Googleなどは、別ウィンドウ(タブ)を開くのをよしとしていなかったので、その一環なんでしょうか。
別に違うサイトに移動したんじゃないのだから、無効にしなくてもいいんじゃないの・・・と思うのですが、もうそうなってしまったので仕方ありません。
タブを閉じることはできないのですが、表示を閉じる(真っ白なページになる)方法があったので、そちらの処理を組み込んで、OKをいただきました。
それにしても、思いもよらない仕様変更があるものです。
検索エンジンだけでなく、ブラウザの進化・変化からも目が離せませんね。