IE8とIE11で空文字Cookieの戻り値が違う
事象
Internet Exploerer(以下IE) 8用のイントラサイトが規定のブラウザがIE11になったことで表示が乱れたとユーザより連絡を受けたので、さっそく原因を調査してみました。
原因
JavaScriptで値が空文字のcookieを取得したときのブラウザ間の違い | かたつむりくんのWWW
Cookieの空文字の扱いが違うだと?!なにそれハゲる。
IE8では値が空文字のCookieはundefined、IE11では空文字は空文字となる違いがあり、Cookieの値が空文字だった場合以下のようなJavaScriptのコードの動きが違ってしまい大爆死。
if (cookie != null) { //とある処理 }
あ、ちなみにこのコードはわたし^o^が書きました。
つまり、こうなるってわけですね。
undefined != null // => false "" != null // => true
イントラサイトは規定のブラウザで動けばオッケーイで楽なんだけど、ブラウザ間の差異に気付きにくいのは弊害だなぁ。