電子書籍の厳選無料作品が豊富!

初心者です。ホームページを作っています。
以下のように記述して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>

A 回答 (3件)

肝心のスクリプトが提示されていないので、まったくの推測ですが・・・



変数名か関数名がダブっているとか、そういうことではないのかしらん?
関数名がくさそうな気がしますが・・・

この回答への補足

すみません。
内容を書くのを忘れていました。

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);
};

よろしくお願いします。

補足日時:2008/10/29 09:30
    • good
    • 0
この回答へのお礼

やはりonLoadがだぶっていました。
1つのscriptにまとめたら動きました。
ありがとうございました。

お礼日時:2008/10/29 12:33

タイマーがクリアされているようですね


どちらかのタイマー処理をsetIntervalなど別方法にかえてみては?
    • good
    • 0
この回答へのお礼

片方をsetIntervalに書き換えてみたのですが動作しませんでした。

2つのscriptの中が
setTimeoutと同じ動作をさせていることに気ずいたので1つのscriptにまとめて書き込んだら動きました。ありがとうございました。

またよろしくお願いします。

お礼日時:2008/10/29 12:21

たとえば、test.jsとcommon.jsでともにwindow.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);
};
よろしくお願いします。

補足日時:2008/10/29 09:36
    • good
    • 0
この回答へのお礼

やはり両方のscriptにonLoadが使われていたから動作しなかったのですね。
ありがとうございました。

お礼日時:2008/10/29 12:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報