みかづきブログ その3

3ヶ月つづけてみました。

こりゃあどうしてもiframeの中からdevicemotionイベントを取得してもらおう

出来らぁっ!

しかし、いつも「え!!iframe内から加速度の取得を!?」と思って、
jsdo.itにサンプルを書いている気がするので、今度こそ忘れないようにブログに書いておきます。

下記サンプルをiOS12(β)でアクセスして確かめました。

f:id:kimizuka:20180806221257p:plain
http://jsrun.it/kimmy/GEiH

JavaScriptでhttpにきたアクセスをhttpsにリダイレクトする

当然サーバサイドで対応するのが良いのですが、フロントエンドのしごとをしていると、「サーバ側の改修が不可能のでフロントでなんとかしてください」ということが稀にあります。

もしも、そんな状況で、httpできたアクセスをhttpsにリダイレクトしたかったら、

愚直に掛けば、

location.replace(location.href.replace(/^http:/, "https:"));

こんな感じでしょう。

https以外をすべてhttpsにリダイレクトするなら、

if (location.protocol !== "https:") {
  location.replace("https:" + location.href.substring(location.protocol.length));
}

という感じになりますが、
本当に極稀に簡単な修正をhtmlファイルを開いて確認することがあるので、
基本的には愚直に書いたバージョンを使ってます。
(後者だとfile:///もhttpsにリダイレクトされてしまうため)

注意事項としては、

  • なるべくheadタグの上の方に書く
  • PVが倍になるリスクあり
  • httpsからhttpにリダイレクトされる環境だと無限ループが起こる

の3点です。