-2

カウンターのコードでエラーが発生する

同様のスニペットはそうではありませんが、

正当な理由が思いつかない…

検討中の行は次のとおりです。

<input type=button name="but2" value="stop" onClick="window.clearTimeout(ID);">    

完全なコードは次のとおりです。

<html>
        <head>
        <script language="JavaScript">
            var counter=0;
            ID=window.setTimeout("start();",2000);
            function start()
            {
                counter++;
                document.forms[0].elements[0].value=counter;
                ID=window.setTimeout("start();",2000);
            }
        </script>
        </head>
        <body>
            <form name="frm1">
                <input type="text" name="timer1">
                <input type="button" name="but1" value="start" onClick="counter=0; start();">
                <input type=button name="but2" value="stop" onClick="window.clearTimeout(ID);">
            </form>
        </body>
</html>
4

3 に答える 3

0

こんにちは、この行でエラーが発生していると思います

ID=window.setTimeout("start();",2000);

右 ?

このコードを入れて

var  ID=window.setTimeout("start();",2000);

この JavaScript: エラー エラーは表示されませんObject doesn't support this action

于 2014-02-03T08:00:51.413 に答える
0

そのコードに関するすべてが間違っています。今後は、そのチュートリアルのソースを避けるようにしてください。

ここに作業スクリプトがあります: http://jsfiddle.net/teresko/qTJPx/

スクリプトの問題のリスト:

  • Doctypeがありません
  • language="JavaScript"非推奨です
  • 変数IDであり、counter最終的にはグローバル スコープになりました
  • html を使用してイベントを添付する
  • の誤った使用setTimeout
  • <script><head>DOM がまだ準備できていないときに使用されるタグ

..そして、私はその「類似のスニペット」についても触れたくありません。

JavaScript コードを追加するときは、終了タグの直前に配置する必要があります。これは</body>、その段階で DOM は既に準備ができているが、ページのレンダリングはまだ開始されていないためです。

JavaScript を学習するための新しい教材を入手することを強くお勧めします。

于 2012-04-22T11:33:20.717 に答える
0

イベントwindow.startの開始の代わりに使用します。onClickハンドラーに関数の代わりにコードを使用すると、IE がウィンドウ コンテキストを作成しない可能性があります。

于 2012-04-22T10:29:44.653 に答える