nantekkotai's blog

おもに技術とお仕事に関連することを書いています。

Androidはwindow.openでポップアップブロックされることがあるから気をつける

発生する仕組みは、おそらくChromeのポップアップブロックと同じ。
簡易的に解決したいならば、HTML要素にonclickイベントを直接書くしかない。

<div onclick="window.open('http://www.google.com/', '_blank')">openなう</div>

よその関数内でwindow.open呼ぶとブロックされる感じ。

それはさておき、新規ウィンドウを開く動作がiPhoneAndroidで違う

当たり前だよね。ごめんね。

iPhoneの場合

target="_blank"なリンクをクリックすると、ウオーンってなって、パカって開く。
一回ウィンドウ一覧が開いて、新しくウィンドウが開かれますよ〜、というアニメーションを一通り見させられるので、「今開かれているページは新しいウィンドウなんだ」ということがわかる。

Androidの場合

新規ウィンドウが開くアニメーションなどという女々しいことはしない。
男らしくいきなり開く。
いきなり開きすぎて、新規ウィンドウなのか通常のリンクなのかわからない。
それだけならまだしも、戻るボタンが有効である。
戻るボタンを押すと、新規ウィンドウを開いた元のページに戻る。
そして驚くべきことは開いたはずの新規ウィンドウは消えている。
親切心かもしれないが、余計なお世話だ。
新規ウィンドウはそのままにしておけやって感じです。

結論:焼きそば食いたい。