• ベストアンサー

リンクをクリックして画像を切り替えるには?

下記のようなソースなのですが、2枚目の画像に切り替わらず、表示されません。 何が悪いのでしょう? <header内>-------------------------------------> <SCRIPT type="text/javascript"> <!-- function showimg1(){ document.area.src = "/jp/shop/i/popup_usbcalc/cg4.jpg"; } function showimg2(){ document.area.src = "/jp/shop/i/popup_usbcalc/cg4_zoom.jpg"; } //--> </SCRIPT> -------------------------------------> <img src="cg4.jpg" alt="" name="area" /><br /> <table> <tbody> <tr> <td>[ <a href="javascript:void()" onclick="showimg1()">リンク1</a> ]</td> <td>[ <a href="javascript:void()" onclick="showimg2()">リンク2</a> ]</td> </tr> </tbody> </table>

  • foo-o
  • お礼率100% (7/7)

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

>これってどういうことなのでしょうか? ウチでも、そういう現象がでてたので、そうじゃないかなと思っていたんですけど、 多分、キャッシュの問題だと思います。 functionより前の部分で var image = new Array(2); image[0]=new Image(); image[1]=new Image(); image[0].src="cg4.jpg"; image[1].src="cg4_zoom.jpg"; //パスは正しいパスで書いてください。 の様にすることで、画像を保持しておくことができますから そうすれば、 functionの中で、 document.area.src = "cg4.jpg"; か document.area.src = image[0].src; で、問題なく表示されると思います。

foo-o
質問者

お礼

functionより前の部分で~を記述したら画像が表示されるようになりました! キャッシュの問題でしたか。。。画像を表示してもしばらく経つとまた画像が表示できない現象もそう言えばありました。 根気良くお付き合いいただきましてありがとうございました!!

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>画像のパスは通常ルートから書かないものなのでしょうか? #3の方も書いておられますけど、 やはり、パスが怪しいかと思いまして#2のように書かせていただきました。 試しに、HTML文書と同じフォルダに画像をコピーしてパス指定無しで つまり document.area.src = "cg4.jpg"; みたいに書いてみてそれで表示されるか どうかというのをテストされたらどうでしょうか このようにして表示されればパスの指定の問題ということになるかと思います。(それでも表示されなければべつの問題) あと、表示されない画像を右クリックして「画像の表示」で表示されるということはないですか?

foo-o
質問者

お礼

ご回答ありがとうございました。 パス指定なしで画像を指定しても現象が変わらなかったのですが、表示されない画像を右クリックして「画像の表示」をしたら画像が表示されるようになりました。これってどういうことなのでしょうか? 何度もご回答いただいて本当に感謝です、ちょっと自分でも調べてみたいと思います。

回答No.3

void() の件は済んでいる様なので、 ポイントは、 >"/jp/shop/i/popup_usbcalc/cg4.jpg"; この定義の様です。 絶対パスの様に解釈するブラウザもあれば、 カレントディレクトリからの相対パスの様に解釈するブラウザもあり・・・。 詳細までは検証しきれていませんが とりあえず変更される事をお勧めします。 (作者が期待する位置とブラウザが解釈する位置が違うと・・・。) とりあえず Windows XP SP2 上での検証で HTML ファイルの場所が D:\HTML\TEST\test.htm という条件で IE6.0 では、 D:\jp\shop\i\popup_usbcalc\cg4.jpg を表示し Opera7.54u2 では D:\HTML\TEST\jp\shop\i\popup_usbcalc\cg4.jpg を表示しました。 Mozilla1.7.5 では・・・、変化なし。表示対象なし? 尚、"./jp/shop/i/popup_usbcalc/cg4.jpg"; と相対パスとした場合は、いずれも D:\HTML\TEST\jp\shop\i\popup_usbcalc\cg4.jpg を表示している事はどれも検証しています。 それでもダメなら、 あとは画像ファイルの読み込み権限くらいしか思いつきませんが。

foo-o
質問者

お礼

ご丁寧な回答ありがとうございました。 早速画像とHTMLファイルを同じディレクトリに入れて検証してみましたが。。。結果は同じでした。権限の設定を調査してみたいと思います。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

試してみましたが、画像は切り替わりました。(IE&FireFox) srcで指定しているパスは合っていますか? 「/」ルートから始めているのも変な気がします。 あと javascript:void() ですが、 voidは引数を取る演算子ですので、 javascript:void(0) とかなんでもいいので引数を渡してやる必要があります。

foo-o
質問者

お礼

ご回答ありがとうございました。 因数を追記してみましたが、現象は変わりませんでした。 画像のパスも間違いありませんでした。画像のパスは通常ルートから書かないものなのでしょうか?

  • THX1138
  • ベストアンサー率51% (108/208)
回答No.1

document.area.src = "/jp/shop/i/popup_usbcalc/cg4.jpg"; としていますが、ドキュメント中の画像は自動的に images と言う名前のコレクションに収められるようになっているので、 document.images['area'].src = ... とする必要があります。

foo-o
質問者

お礼

ご回答どうもありがとうございました。 早速試してみましたが、現象は変わりませんでした。 サーバーの方で何か設定をしているかどうか管理者の方に聞いてみたいと思います。

関連するQ&A

  • 文字をオンマウスすると、画像がかわり、クリックで他のページへいくようにしたい。

    初めてJavaを使いました。 『文字にマウスを当てると、上に置いた画像がかわり、さらにその文字をクリックすると、他のページにいくようにしたいのです』 文字にマウスを当てると、上に置いた画像が変わるとこまではできましたが、どうしても他のページへのリンクができません。 よい方法を教えてください。 作ったHTMLは以下のとおりです。 <SCRIPT language="JavaScript"><!-- function myChgPic(myPicURL){ document.images["myBigImage"].src = myPicURL; } // --></SCRIPT> <TABLE align="center"> <TBODY> <TABLE border="0" align="center"> <TBODY> <TR> <TD><IMG src="ankor.jpg" name="myBigImage" border="2"></TD> </TR> <TR> <TD><A href="javascript:void(0)" onmouseover="myChgPic('shanghai.jpg')">上海 <br> <A href="javascript:void(0)" onmouseover="myChgPic('italy.jpg')">イタリア <br> <A href="javascript:void(0)" onmouseover="myChgPic('canada.jpg')">カナダ    </A>    </TD> </TR> </TBODY> </TABLE> 上海、カナダ、イタリアという文字をクリックしたら、その写真にかわり、文字をクリックしたらそれぞれのページにリンクさせたいのです。

  • スワップイメージ+リンクの変更

    まったくの素人ですが、お教えください。 以下のようなテーブルにそれぞれ画像とリンクをつけようとしています。 <table> <tr> <td rowspan="3"><a href="hoge.html"><img src="hoge.jpg"></a></td> <td><a href="a.html"><img src="a.jpg"></a></td> </tr> <tr><td><a href="b.html"><img src="b.jpg"></a></td></tr> <tr><td><a href="c.html"><img src="c.jpg"></a></td></tr> </table> a.jpg/b.jpg/c.jpg(以下、abc) がそれぞれメニューバーの項目で、 hoge.jpgを大きなメインの画面にしたいと思っています。 このとき、abcのいずれかをマウスオーバーするたびに、それぞれのイメージがhogeのエリアにスワップされ、かつそれぞれの項目のリンク(a.html/b.html/c.html)がhoge.htmlと置き換わるようなjavascriptを作りたいと考えています。 イメージのスワップだけならいくつも見つけることができたのですが、イメージとリンクが両方ともスワップされるようなものを、見つけることができませんでした。もしそのようなjavascriptがweb上にありましたら、お教えください。

  • 「戻る」「進む」ボタンで画像を変えるには?

    「戻る」「進む」ボタンで5枚の画像を変えられるようにしたいのですが、なかなかできません。 順番が飛んでしまったりしてしまいます。 var n=0; var imgDB=new Array("kenkyu/0.jpg","kenkyu/1.jpg","kenkyu/2.jpg","kenkyu/3.jpg","kenkyu/4.jpg"); function change(){ if(n==0)n=4; if(n==5)n=0; document.img.src=imgDB[n]; } <TABLE cellpadding="10" bgcolor="#0099cc"> <TBODY> <TR> <TD><IMG src="kenkyu/0.jpg" name="img" width="500" height="400" border="0"></TD> </TR> </TBODY> </TABLE> <A href=JavaScript:n--;change();><IMG src="kenkyu/modoru.jpg" width="96" height="28" border="0"></A>  <A href=JavaScript:n++;change();><IMG src="kenkyu/susumu.jpg" width="96" height="28" border="0"></A><BR> 分かる方、教えて下さい。 よろしくお願い致します。

  • 画像をクリックして別の画像を変えたい

    ボタン画像をクリックしたときに同一ページ内にある画像が変わるようにしたいのですが、下のように描くと、ボタン画像(button.gif)自身が2.pngなどの画像に変わってしまいます。   <HTML> <HEAD> <TITLE>スワップイメージ</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function changeImage(imageUrl){ document.images[0].src = imageUrl; } // --> </SCRIPT> </HEAD> <BODY> <A HREF="#" onClick="changeImage('1.png')" ><IMG SRC="button.gif" border="0"></A> <A HREF="#" onClick="changeImage(2.png')" ><IMG SRC="button.gif" border="0"></A> <A HREF="#" onClick="changeImage(3.png')" ><IMG SRC="button.gif" border="0"></A> <TABLE BORDER="0"> <TR> <TD>ボタンを押すと下に画像が表示されます。</TD> </TR> <TR> <TD><IMG SRC="1.png"></TD> </TR> </TABLE> </BODY> </HTML> 原因を私なりに考えたところ、設定した変数mageUrlをボタンを表示させるために使った<img src="button.gif">で受け取ってしまっているというのはわかりました。(確認のため <IMG SRC="1.png"> を<A HREF>~</A>より上に持ってきたら思っていた動きになりました。)  けれどそれからどう修正したらもとの順番でもちゃんと動くのかがわかりません。過去ログの似た質問も拝見したのですが、今の自分では理解できませんでした‥。すみませんがよろしくお願いいたします。

  • tableを自動作成・追加できるプログラムを探しているのです・・

    <table> <tbody> <tr> <td colspan="9" align="center" </TD></td> </tr> <tr> <td colspan="9" <A href="http:// target=" _blank"></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td rowspan="3"></td> <td></td> <td><img src=".jpg"></td> <td></td> <td> <table> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </td> <td></td> <td><img src=".jpg"></td> <td><img src=".jpg"></td> <td></td> </tr> <tr> <td></td> <td><img src=".jpg"></td> <td></td> <td> <table> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </td> <td></td> <td><img src=".jpg"></td> <td><img src=".jpg"></td> <td></td> </tr> <tr> <td></td> <td><img src=".jpg"></td> <td></td> <td> <table> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </td> <td></td> <td><img src=".jpg"></td> <td><img src=".jpg"></td> <td></td> </tr> <tr> <td><img src=".jpg"></td> </tr> </tbody> </table> こんなtableを作成し(tdには数値・文字列・画像が入ります)一つのhtmlファイルに一ヶ月に10個ほど手動でtableを追加しています。 これを入力フォームより数値や文字列・参照画像を入力し、月ごとのhtmlにしてるので、指定したhtmlに反映させるようなプログラム(cgi? javascript? PHP?)をご存じの方いらっしゃいませんでしょうか?

  • スワップイメージ+リンクの変更 その2

    たびたび御世話になります。 以前、QNo.4078462で質問させていただいた者です。 http://oshiete1.goo.ne.jp/qa4078462.html 質問させていただいた問題は解決できたのですが、修正が必要となりました。 自分でなんとか解決してみようと試みたのですが、 少し時間が無いために改めて質問させてください。 以下のようなテーブルにそれぞれ画像とリンクをつけようとしています。 <table> <tr> <td rowspan="3"><a href="hoge.html"><img src="hoge.jpg"></a></td> <td><a href="a.html"><img src="a.jpg"></a></td> </tr> <tr><td><a href="b.html"><img src="b.jpg"></a></td></tr> <tr><td><a href="c.html"><img src="c.jpg"></a></td></tr> </table> a.jpg/b.jpg/c.jpg(以下、abc) がそれぞれメニューバーの項目で、 hoge.jpgを大きなメインの画面にしたいと思っています。このとき、 1. abcのいずれかをマウスオーバーするたびに、それぞれのイメージがhogeのエリアにスワップされる 2. abcからマウスを外すとhoge.jpgに戻る の2点を満たすjavascriptを御教授ください。 2. の条件がある分、以前と違ってリンクまでスワップされる必要はありません。

  • エラーが起きてしまいます

    アルバムページを作ろうと思っていたのですが どこが、どう間違っているのでしょうか? 一応表示はできていると思うのですが… <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language=javascript> var prevObj = null function chBorder(elem,color) { if(prevObj != null) { prevObj.style.borderColor = "#ffffff" } prevObj = elem elem.style.borderColor = color } </SCRIPT> </HEAD> <BODY> <TABLE> <TBODY> <TR> <TD> <IMG onclick="myImg1.src=this.src" src="1.jpg" width="60"> <IMG onclick="myImg1.src=this.src" src="2.jpg" width="60"> <IMG onclick="myImg1.src=this.src" src="3.jpg" width="60"> <IMG onclick="myImg1.src=this.src" src="4.jpg" width="60"> <IMG onclick="myImg1.src=this.src" src="5.jpg" width="60"> </TD> </TR> <TR> <TD align="center"> <IMG id="myImg1" src="0.jpg" width="300"> </TD> </TR> </TBODY> </TABLE> </BODY> </HTML>

  • onclickで画像と文字を別々の場所に表示したいのですが...

    onclickで小さい画像を別の場所に大きな画像で表示することは出来たのですが、その時に別の場所に文字を表示したいのです。 (例えば:「山」の小さな画像をクリックすると大きな「山」の画像が表示されて←これはOK、 その下に「富士山」の文字を表示したい←これです。) 下記のようにしています。 <script language="javascript"> <!-- function Image(img){ document.getElementById("image").src=img} //--> </script> </head> <table> <tr> <td><img src="sample1_small.jpg" onclick="Image('sample1.jpg')"></td> <td><img src="sample2_small.jpg" onclick="Image('sample2.jpg')"></td> <td><img src="sample3_small.jpg" onclick="Image('sample3.jpg')"></td> <td><img src="sample4_small.jpg" onclick="Image('sample4.jpg')"></td> </tr> <tr> <td colspan="4"><img src="sample1.jpg" name="image"></td> </tr> <tr> <td>***ここに文字を表示させたいのです***</td> </tr> </table> 宜しくお願いします。

  • 画像をクリックして別の画像を表示させたい

    現在HPで親ページから、サブウインドウで画像を表示させるアルバムを作っています。 そのサブウインドウをクリックすると別の画像を表示させたいと思い、下記のように記述したのですが、画像がまったく変わりません。 (下記のページはalbum01です。クリックしたら album02を表示させたいと思っています。) ----------------------------------------------- HEAD部に記述 <script language="JavaScript"> <!--num=0; function change() {num++; num %= 5; document.myIMG.src = "../img/album02.jpg"; } // --></script> BODY部に記述 <body> <table width="300" border="0" cellspacing="2" cellpadding="0"> <tr> <td> <a href="javaScript:change()"> <img src="../img/album01.jpg"name="album01"border="0"></a></td> </tr> <tr> <td> <div align="center">□画像をクリックすると、次の画像も見られます□</div> </td> </tr> </table> <div align="center"></div> </body> -------------------------------------------- 写真は全部で5枚です。今後増やしていきたいと思っています。 javascriptのことはわからないので、どこがどう間違っているのかわかりません。 表示されるようにするにはどのようにしたらいいですか? 使用OSはWin98、ブラウザはIE6.0です。 よろしくお願いします。

  • リンクにおける挙動の参照と範囲指定

    ほぼ初心者です。 html内に、javascriptを参照させて、以下のように作成しました。 <SCRIPT language="javascript"src="popup.js"></script> <□□> <a href="1.jpg" onclick="popup(href);return false;">テスト1</a> <a href="2.jpg" onclick="popup(href);return false;">テスト2</a> <a href="3.jpg" onclick="popup(href);return false;">テスト3</a> </□□> 普通にポップアップされたのですが、以下の方法ができないかと思っております。 (1)「onclick="popup(href);return false;"」の部分をほかから参照させる (2)特定の範囲のリンクのみ「onclick="popup(href);return false;"」を適用させる。 (1)はLightboxのように、「rel="thumbnail"」みたいに参照できないか、ということです。 (2)は上の「<□□>~</□□>」のように囲われた範囲のリンクで、「onclick="popup(href);return false;"」を適用できないか、ということです。 よろしくお願いします。

専門家に質問してみよう