- ベストアンサー
javascriptを2つ使うと1つの動きしかしません。
初心者です。ホームページを作っています。 以下のように記述してjavascriptで2つの動きをしたいのですが1つしか動きません。scriptをべつのファイルにしたのですが動かないのですが。どう記述したらいいのでしょうか? よろしくお願いします。 <html> <title></title> <head> <script language="javascript" src="test.js"></script> </head> <center> <body text="#000000" onLoad="timer1=setTimeout('fadein(0,100)',100)"> <br><br> <font size="8" color="green">ようこそマイホームページへ</font><br><br> <img src="top.jpg"><br><br> <a href="top.html"> <img src="main.jpg"></a> <form action="top.html"> </form> <script language="javascript" src="common.js"> </script> <a href="javascript:void(post())">3秒後に遷移します。画面が変わらない場合はクリックしてください</a> </center> </body> </html>
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
肝心のスクリプトが提示されていないので、まったくの推測ですが・・・ 変数名か関数名がダブっているとか、そういうことではないのかしらん? 関数名がくさそうな気がしますが・・・
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
タイマーがクリアされているようですね どちらかのタイマー処理をsetIntervalなど別方法にかえてみては?
お礼
片方をsetIntervalに書き換えてみたのですが動作しませんでした。 2つのscriptの中が setTimeoutと同じ動作をさせていることに気ずいたので1つのscriptにまとめて書き込んだら動きました。ありがとうございました。 またよろしくお願いします。
- yambejp
- ベストアンサー率51% (3827/7415)
たとえば、test.jsとcommon.jsでともにwindow.onload構文を つかっているとかだと、作業が競合しますね
お礼
やはり両方のscriptにonLoadが使われていたから動作しなかったのですね。 ありがとうございました。
補足
そうですか。 ページを読み込んですぐに動作するものと、3分後だから大丈夫だと 思ったのですが。 一応scriptの中を書いておきます。 <test.js> r_color="000123456789abcd"; g_color="0123456789abcdef"; b_color="000123456789abcd"; function fadein(pos,speed){ clearTimeout(timer1); r=r_color.charAt(pos); g=g_color.charAt(pos); b=b_color.charAt(pos); document.bgColor="#"+ r + r + g + g + b + b; if(pos < 15){ timer1=setTimeout("fadein("+(pos+1) +","+ speed + ")",speed); }else{ clearTimeout(timer1); } } <common.js> var post = function(){ document.forms[0].submit(); }; window.onload = function(){ window.setTimeout(post, 3000); }; よろしくお願いします。
お礼
やはりonLoadがだぶっていました。 1つのscriptにまとめたら動きました。 ありがとうございました。
補足
すみません。 内容を書くのを忘れていました。 test.jsが以下の内容です。 r_color="000123456789abcd"; g_color="0123456789abcdef"; b_color="000123456789abcd"; function fadein(pos,speed){ clearTimeout(timer1); r=r_color.charAt(pos); g=g_color.charAt(pos); b=b_color.charAt(pos); document.bgColor="#"+ r + r + g + g + b + b; if(pos < 15){ timer1=setTimeout("fadein("+(pos+1) +","+ speed + ")",speed); }else{ clearTimeout(timer1); } } common.jsが以下の内容です。 var post = function(){ document.forms[0].submit(); }; window.onload = function(){ window.setTimeout(post, 3000); }; よろしくお願いします。