LoginSignup
10
9

More than 5 years have passed since last update.

IE8でjQueryのloadを扱うときに個人的に忘れてはいけないこと

Last updated at Posted at 2015-01-07

IE8 + jQuery + load =

var method = $("#selectBoxA").val();
$("#selectBoxB").load("./path/" + method);

セレクトボックスAの選択に応じて動的にセレクトボックスBの中身を変える処理を考える。
事前に選択された内容に応じてmethodの値が変わって、結果、セレクトボックスBの中身が変わるという風に。IE8だとこれが動作せずにハマった。

だいたいキャッシュのせい

$.ajaxSetup({ cache: false });

「IE8 jQuery load」で検索して一番多かったのは上記の追記。
これをload前に埋め込むとキャッシュが悪さしないとのこと。
しかし、今回はこれでは解決できなかった。
どうやら私は他の方々とは別の次元でミスをしているらしい。。。

原因はエンコード

var method = $("#selectBoxA").val();

var address = encodeURI("./path/" + method);
$("#selectBoxB").load(address);

エンコードは忘れずに、ということだった。
最近のブラウザじゃあっさり動いてくれたんですが。。。(言い訳

同じ状況に嵌る人が居るかどうかはわからないけど、
次同じような事態に遭遇したときのためにメモ。

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9