【问题标题】:Button, Timeout, Alerts Uncaught TypeError:按钮、超时、警报未捕获的类型错误:
【发布时间】:2016-03-02 18:39:47
【问题描述】:

我有 2 个按钮,我想先单击“Button1”,然后在 5 秒后单击。 “按钮 2” 再过10秒。重定向到另一个网址。

document.getElementById('Button1').click();
alert("After clicking Button1");
setTimeout(function(){
document.getElementById('Button2').click();
}, 5000);
alert("After clicking Button2");
setTimeout(function(){
window.location.href="http://google.com";
}, 10000);

我明白了

未捕获的类型错误:无法读取 null 的属性“单击”。

按钮工作并单击,但重定向代码不起作用。奇怪的是我使用警报来检查代码,它首先运行警报,然后单击“Button1”,然后单击“Button2”,然后我收到错误,它不会继续执行最后一个代码。我不知道该怎么办..

【问题讨论】:

  • Button2 不存在
  • @John Cena 错误出现在哪一行?

标签: javascript html getelementbyid typeerror


【解决方案1】:

我认为您的第二个警告声明放错了位置。 试试这个:

document.getElementById('Button1').click();
alert("After clicking Button1");

// wait 5 seconds
setTimeout(function(){
    document.getElementById('Button2').click();
    alert("After clicking Button2");

    // wait 10 seconds
    setTimeout(function(){
        window.location.href="http://google.com";
    }, 10000);
}, 5000);

确保 Button2 存在,因为您收到的错误表明它不存在。 您的 HTML 应如下所示:

<button id="Button1">this is button 1</button>
<button id="Button2">this is button 2</button>

【讨论】:

  • 该按钮存在,因为我单击第二个按钮后,它会为用户获取一个用户槽。
  • 尝试重构你的代码(通过像我一样嵌套 setTimeouts),看看是否会改变
猜你喜欢
  • 2016-07-23
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 2021-12-10
  • 2020-03-12
  • 1970-01-01
相关资源
最近更新 更多