• ベストアンサー

メニュー(マウス通過・クリックで絵の替わる物)のことで質問です。

えーと、すいません。 メニューの件で質問です。 マウス通過・クリックで絵の替わるジャバスクリプトを作ってメニューを作ったんですけど、 その際にまだ読み込んでいないファイルを読み込むようにする物がDreamweaverにありましたのでそれも一緒に入れました。 でもなぜか、 Web上に上げると、 メニューの絵が表示されますけれど、 マウス通過・クリックしますと次に出てくるはずの絵が出てこないのです。 (IEで見ると×マークが出てきます。) 作った物ですが、 こんなかんじです。 <body> <script language="JavaScript"> function winImage1(){ document.win1.src="×××.gif"; //これにさわったら、 } function winImage2(){ document.win2.src="×××.gif"; //これに替わる } //--> </script> <a href="index.htm" onMouseOut=winImage2() onMouseOver=winImage1() target="_parent"> <img border=0 name=××× src="×××.gif" alt="×××"></a> <body> を作りましたが、 なかなか見れません。 あと、Dreamweaver上にありました、先にこのファイルを読み込みなさいと指示をするジャバスクリプトものせておきます。 <head> <script language="JavaScript"> function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } //--> </head> <body onLoad="MM_preloadImages(×××.gif,×××.gif・・・)"> </script> </body> です。 あと、使っているアプリケーションは、『Dreamweaver4』です。 どうかよろしくお願いします。

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

  • ベストアンサー
  • eim-yuuma
  • ベストアンサー率37% (10/27)
回答No.4

すみません。eim-yuumaです。 前の回答で一ヶ所訂正があります。 <body bgcolor="#FFFFFF" text="#000000" onLoad="MM_preloadImages(image/A.gif,image/B.gif)"> は <body bgcolor="#FFFFFF" text="#000000" onLoad="MM_preloadImages('image/A.gif','image/B.gif')"> とイメージ名に''をつけてください。(^_^;ゞ

uduki4
質問者

お礼

本当にありがとう御座います。 これにてきちんと動く、ジャバスクリプトが出来たと感動しています。 でも、これは余談なんですが、 なぜか、上記にあるものでもきちんと動いているんです私もそれは不思議です。 ともかくありがとう御座います。感謝に感謝を重ねても言い足りませんが、 また質問があるときには質問をさせてもらいます。 ありがとう御座いました。

その他の回答 (3)

  • eim-yuuma
  • ベストアンサー率37% (10/27)
回答No.3

こんにちは。再びeim-yuumaです。 >一応、一回した物は次にした時も出来ますが、その前は出来ないんですよ。 の意味が良く解らないのですが(すみません・・) 質問内容にかいてあったソ-スを合わせて以下のようにすると動きました。 私の環境はISDNの常時接続ですがOKでした。(そもそも回線の種類は関係ないと思います。。。(^_^;)) ************************************************************* <html> <head> <title>js_test</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <script language="JavaScript"> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function winImage1(){ document.win1.src="image/Al.gif"; //これにさわったら、 } function winImage2(){ document.win1.src="image/B.gif"; //これに替わる } //--> </script> </head> <body bgcolor="#FFFFFF" text="#000000" onLoad="MM_preloadImages(image/A.gif,image/B.gif)"> <a href="index.htm" onMouseOut="winImage1()" onMouseOver="winImage2()" target="_parent"> <img border=0 name="win1" src="image/A.gif" width="16" height="14"></a> </body> </html> 注意すべきところはonMouseOut時とonMouseOver時に動くfunctionが逆ではないかということです。 onMouseOut時に動くのは document.win1.src="image/Al.gif"; //これにさわったら、 onMouseOver時に動くのは document.win1.src="image/B.gif"; //これに替わる ではないでしょうか(これは私の勝手な憶測です。) また、質問内容の下半分のソースは</script>の場所が違いますので移動させています。 気をつけて下さい。 これで動かなければまた詳しく補足してくださいね。

noname#5841
noname#5841
回答No.2

こんにちは。 <script language="JavaScript"> の後に、 <!-- が抜けてますよ。 //--> で閉じてるけれど、開始がないです。 これが原因、かも、しれません。 あと、 onMouseOut=winImage2() onMouseOver=winImage1() は onMouseOut="winImage2()" onMouseOver="winImage1()" と『"』で囲いましょう。

uduki4
質問者

お礼

どうも有り難う御座います。 確かに抜けてますね。 きちんと動くことが出来ました事をお伝えします。

  • eim-yuuma
  • ベストアンサー率37% (10/27)
回答No.1

初めまして。eim-yuumaです。 最初に上記のソースは実際のものとしてとしてお話します。 <body> <script language="JavaScript"> function winImage1(){ document.win1.src="×××.gif"; //これにさわったら、 } function winImage2(){ document.win2.src="×××.gif"; //これに替わる } //--> </script> まず、上記のスクリプトですが document.win1.src=~ document.win2.src=~とありますがこの場合のwin1,win2,と名前が違うと動かないと思います。 この場合、 <img border=0 name="win" src="×××.gif" alt="×××"></a> のように名前をきめてJavascript内のwin1,win2をwinに統一します。これで動くと思いますが、 解らなかったら補足要求してくださいね。 質問の意味を取り違えていたらごめんなさい。

uduki4
質問者

補足

すいません。 確かに間違えてますね。 <body> <script language="JavaScript"> function winImage1(){ document.win1.src="×××.gif"; //これにさわったら、 } function winImage2(){ document.win2.src="×××.gif"; //これに替わる } //--> </script> は、 <body> <script language="JavaScript"> function winImage1(){ document.win1.src="×××.gif"; //これにさわったら、 } function winImage2(){ document.win1.src="×××.gif"; //これに替わる } //--> </script> にしてください。 どうやら、書き換える時に間違えたみたいです。 私が言いたかったのは、実は、この通りにしましても、「ADSL」はおろか「ISDN」で見ても出来ないと言う事なんです。 一応、一回した物は次にした時も出来ますが、その前は出来ないんですよ。 何か言い方がおかしくてすいません。 あとどこがおかしいのか言ってください。 どうかよろしくお願いします。

関連するQ&A