JavaScript:错误“对象不支持此操作”

JavaScript: Error "Object doesn't support this action"

本文关键字:操作 不支持 对象 错误 JavaScript      更新时间:2023-09-26

计数器的代码给出错误

而类似的代码段则没有

我想不出任何正当理由...

正在考虑的行是:

<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>

onClick事件使用 window.start 而不是 start。当您使用代码而不是处理程序的函数时,IE 可能不会创建窗口上下文。

关于该代码的所有内容都是错误的。请尽量避免将来使用该教程来源。

这是一个工作脚本:http://jsfiddle.net/teresko/qTJPx/

脚本问题列表:

  • 缺少文档类型
  • language="JavaScript"已弃用
  • 变量IDcounter最终出现在全局范围内
  • 使用 HTML 附加事件
  • 不正确使用setTimeout
  • <script> DOM 尚未准备就绪时用于<head>的标记

.. 我什至不想回顾那个"类似的片段",它看起来像是应去和埋葬的东西。

当你添加你的JavaScript代码时,它应该在结束</body>标签之前,因为在这个阶段DOM已经准备好了,但页面还没有开始呈现。

我强烈建议你获取一些学习JavaScript的新材料。

嗨,

我认为在这一行中您会收到错误

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

右?

把这个代码

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

你不会得到这个JavaScript:错误Object doesn't support this action错误。