- ベストアンサー
アクセス毎に画像を順番に切替表示させるには
- ページにアクセスするごとに、画像を順番に切替たく調べていましたところ、Win IE6、IE7、Opera9.5にて画像自体が表示されず困っております。
- 画像切替の為のjsファイルには『top_image.js』と名づけ、以下の記述をしております。
- ブラウザによって結果が違うという事は、Javascriptに問題があるのかと思うのですが、原因が分かる方がいらっしゃいましたら何卒ご教授お願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
・ ファイルtop_image.jsを以下の様にしてみてください。 ------------------------------------------------------------ var limit = 14;//Cookieの有効期限(14日間) var imgNo = 0; //以下、画像のリスト var imgList = new Array; imgList[0] = "image/top/img_main_1.jpg"; imgList[1] = "image/top/img_main_2.jpg"; imgList[2] = "image/top/img_main_3.jpg"; imgList[3] = "image/top/img_main_4.jpg"; imgList[4] = "image/top/img_main_5.jpg"; //if(document.cookie.length > 0) imgNo = parseInt(document.cookie.substring(6,99)); function getCookie(key) { tmp = document.cookie + ";"; tmp1 = tmp.indexOf(key, 0); if (tmp1 == -1) { return ""; } tmp = tmp.substring(tmp1, tmp.length); start = tmp.indexOf("=", 0) + 1; end = tmp.indexOf(";", start); return (unescape(tmp.substring(start, end))); } var cook1 = getCookie("imgNo"); if (cook1 == "") { imgNo = 0; } else { imgNo = parseInt(cook1); } document.write("<img src=\"" + imgList[imgNo] + "\" alt=\"\">"); if (++imgNo >= imgList.length) { imgNo = 0; } var d = new Date(); d.setTime(d.getTime() + 24 * limit * 60 * 60 * 1000); document.cookie = "imgNo=" + imgNo + " ; expires=" + d.toGMTString();
その他の回答 (4)
- fujillin
- ベストアンサー率61% (1594/2576)
ちょっと気になっただけなので、言わずもがなですが・・・ 表示されないブラウザは、ブラウザの設定でクッキー拒否になっていたりしてませんか?
お礼
fujillin様 御解答、有難う御座います。 下のauty様から頂いた御解答にお礼させて頂きました通り、 無事解決する事が出来ました。 お手数お掛け致しました。。。 有難う御座います!!
- auty
- ベストアンサー率58% (284/486)
・ LAN内で確認しましたが、IE6でも問題ありませんでした。 他に原因があるようです。 >>> アップ・上書きされていない等気になりました もう1度、ファイル top_image.js の中身の確認をお願いします。
お礼
auty様 何度も何度もお手数お掛けしてしまい、申し訳有りませんでした。 結論から御報告致しますと、お陰様で無事表示されるようになりました!! 原因はtop_image.js内に不要な半角スペースが1つ残っていた為でした。。。 普段そういう点に甘い(?)IEが、今回は厳しかったという感じでしょうか。。。 兎に角、本当にお世話になりました! 大変親切な方にご教授頂き、問題解決とともに勉強させて頂く事が出来ました。 本当に有難う御座いました!!
- auty
- ベストアンサー率58% (284/486)
・ 動作は、IE7と、Firefoxで確認しています。 変化が全くないのか、現在どのような状況になったのか出来るだけ詳しくお知らせください。 <html> <head> <title></title> <script src="top_image.js" type="text/javascript"> </script> </head> <body> </body> </html>
お礼
auty様 何度もお手数お掛けして申し訳御座いません。。 状況としましては、 ▼Win IE6、Win IE7、Win Operaにて画像が表示されません。 ▼Win IE6 IE7につきましては、画像が表示されるべき箇所に”×印”が表示されており、”×印”のプロパティを見ると 『http://テストアップしているサーバURL/undefined』となっております。 Operaにおきましては、何も表示されません。 ▼その他ブラウザ(Win&Mac Firefox、Win&Mac Safari、Mac Opera)では問題なく表示されております。 ただ、ローカルファイルをIE6、IE7、Operaでブラウズすると画像は問題なく表示されるのですが、 サーバへアップしたファイルをブラウズすると上記3ブラウザでは表示されないのです。。。 サーバはロリポップを利用しております。 アップロードしたつもりのファイルが、 実はアップ・上書きされていない等気になりましたので、何度も確認しましたが、アップロードには問題御座いませんでした。。 また、HTMLのソースを以下に書かせて頂きます。 --------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <head> <title>サイト名</title> </head> <body> <script src="top_image.js" type="text/javascript"> </script> <noscript><img src="image/top/img_main_1.jpg" width="710" height="350"></noscript> </body> </html> --------------------------------------------------- 以上、何度も申し訳御座いませんが、何卒宜しくお願い致します。
- auty
- ベストアンサー率58% (284/486)
>>> parseInt(document.cookie.substring(6,99)); >>> Javascriptに問題があるのかと思うのですが、 上の様に、位置を決めうちにしているのが良くないのでは? 参考URL http://oshiete1.goo.ne.jp/qa1683979.html の様にして、imgNoを求めてみてください。
お礼
auty様 早々の御解答、有難う御座います! 私、Javascriptに関してはコピー・ペースト、 ペーストした数値のみを少し弄るという程度の知識でして・・・ 大変お手数ですが、具体的にご教授頂けますと大変有難く思います。 何卒宜しくお願い致します。
お礼
auty様 御解答有難う御座います!! お教え頂いた内容をコピーペーストしてみましたが、変化はありませんでした。。。 折角お教え頂いたのに申し訳御座いません。。。 HTMLですとIEでは問題無いのに他のブラウザでは問題アリ…という事は多々ありますが、 この度のJavascriptは真逆なので困惑しております。。 Javascript素人で申し訳御座いません! 重ねてご教授頂けますと大変有難く思います。 何卒宜しくお願い致します。