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);
エンコードは忘れずに、ということだった。
最近のブラウザじゃあっさり動いてくれたんですが。。。(言い訳
同じ状況に嵌る人が居るかどうかはわからないけど、
次同じような事態に遭遇したときのためにメモ。