
jqueryを使用して、外部のhtmlファイルから各ページ共通のサイドメニューを読み込んでいます。
fairefox、及びIEの8から6までは動作を確認しているのですが、IEの5.5だけは読み込み時に、『オブジェクトでサポートされていないプロパティまたはメソッドです。』というスクリプトのエラーがおきてしまいます。
エラー部分はおそらく.load部分だと思います。
IE5.5でもjqueryはクロスブラウザで対応しているはずですし、他のブラウザで確認がとれているのになぜ、5.5だけエラーがでてしまうのでしょうか?
ちなみにhead部分でjqueryと作成した外部ファイルを読み込んでいます。
作成したjsのソースです
-----------------------------------------------
var urlflag = location.href+"";
if ( urlflag.indexOf( "aaa ) == -1 || urlflag.indexOf( "bbb" ) == 23 ){
$(document).ready(function(){
$("#left_box").load("test_a.jp #lbox_inner");
$("#top_right_box").load("test_a #rbox_inner");
});
}
else{
$(document).ready(function(){
$("#left_box").load("test_b.jp #lbox_inner");
$("#top_right_box").load("test_b #rbox_inner");
});
}
-----------------------------------------------
ソース部分に誤りがあるか、もしくは呼び出すタイミングなどの問題でしょうか?
かなり調べて見ましたがこれ以上は思い当たる節が見つかりません。
何か回避策などあるようでしたら、どなたか是非教えていただけないでしょうか?
No.1ベストアンサー
- 回答日時:
jQueryが動作検証されているのは、
Firefox 2.0+, IE6+, Opera 9+,Safari 3+,chrome 1+
です。
IE5.5について非互換部分を見ると
http://docs.jquery.com/Known_Issues
に
Simple class selectors like ".myClass" fail in IE 5.5. Workaround: select "div.myClass" instead.
とあります。
だから、
"#left_box"は"div#left_box"のようにすればOKかも(left_boxがdivの場合ですが)
この回答への補足
お早い回答にとても感謝しています。
教えていただきました通りにしてみましたが、残念ながらIE5.5のみ動作しませんでした。
このような仕様になったのも、各カテゴリ毎にCMSでサイドメニューのみを別で管理して、ページ毎に組み合わせるという方法をとっているためです。
cmsを使用しているので、吐き出されたhtmlファイルにはheadタグなどが記述されているので、指定のID部分だけを抽出できるjqueryの load()メソッドを使用しました。もし回避策がない場合、他に指定の箇所だけを抽出できる方法はないでしょうか?
prptotype.jsでもincludeがありますが、その場合は指定した場所を読み込む事は可能でしょうか?
SSIなど、可能であれば方法は問わないのですが…。
大変参考になる回答をいただきまして、非常に助かりました。その後他の策もいろいろ検討はしてみたのですが、今回はこのままで行く事にしました。ブラウザの普及の状況や諸々を考慮して、おっしゃられていた様にie5.5のユーザーには別方法で誘導する事に致します。
当方の知識もまだまだ未熟なの事が原因でもありますが、これからもっと知識を蓄えて様々な状況に対応できるようにしていきたいと思います。
No.2
- 回答日時:
SSIを使うとか、XMLHttpRequestのレスポンスを詳細にパースしてDOMを生成
とか、方法はあるかもしれませんが、ちゃちゃと出来ないようなら、
苦労してまで、IE5.5を救ってやる価値は無いでしょう。それを使っている人が不幸です。
IE5.5以外で動作してるならIE5.5は見捨てましょう。ユーザーエージェントを判断してIEのバージョンが古ければ、使用できない旨のポップアップを出すなり、ダウンロードサイトに誘導するなり...
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
ラジオボタンを複数選択したと...
-
ボタンを押したあとに画像を表...
-
画面遷移を行わずに同一ページ...
-
jsonテキストデータの並び替え...
-
clear機能を失わずにファイルア...
-
任意の変数が任意の値になった...
-
イラストレーター、縦中横のシ...
-
jQueryで同じクラス名のものを...
-
タグを教えてください。
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
Outlookのアカウントがあるとメ...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
-
食材の期限を管理するためにGAS...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のスライドだけ長く止める方法
-
wordpress + jqery + IE8
-
jquery UIのdatepickerで和暦
-
jQueryで書き換えた要素のリセット
-
jQuery1.3.2を使用しています。
-
Resizableでクリック軸判定方法
-
jQuery版のlightbox.jsのカスタ...
-
webサービスやサイトをプログラ...
-
jQueryスライドショーの設定
-
TinySlideshowについて
-
あまりに難しいので、質問なの...
-
ブロックレベル要素の高さを揃...
-
jqueryのプラグイン
-
jQueryでclientWidthが使えない
-
jquery.bxGallery.min.js のダ...
-
無料の掲示板でよく使われてる...
-
jqueryを使用して、外部のhtml...
-
画像をクリックするとカッコよ...
-
jQueryのScroolFollowで高さを制御
-
jquery innerfadeについて
おすすめ情報