こんな経験をしたことはありませんか? PCのChromeではJavaScriptからwindow.openでポップアップウィンドウが開けるのに、AndroidのChromeでは開けない。けど、onclickイベントのハンドラ内だったらAndroidでもwindow.openが動く PCのSafariでは動画の自動再生(document.onloadのタイミングでvideo要素のplayを呼ぶ)ができるのに、iPhoneのSafariでは出来ない これらの挙動の違いはバグではなく、主にモバイル端末向けにWebKitの内部設定が変更されているためです。実はモバイルに限らず、ブラウザではユーザ操作(UserGesture)による呼び出しか否かでスクリプトの挙動が変わります。そして、その変わり方がブラウザによって違います。 このあたりのWebKitにおける実装を調べてみました。 下記の操作はクリッ