【问题标题】:Can't seem to convert if..else to try..catch似乎无法将 if..else 转换为 try..catch
【发布时间】:2018-10-14 04:04:09
【问题描述】:

谁能帮我把这段代码转换成try-catch函数?

document.getElementById("find").click();
window.setInterval(function() {
  if (document.getElementById("bba")) {
    document.getElementById("bba").click(); 
  } else {
    document.getElementById("find").click();
  }
}, 1000);

基本上,我希望它在该按钮可用时单击 bba 按钮,但由于该按钮仅在特定时间弹出,(当我的成绩被提交时)整个代码不会运行。

任何帮助将不胜感激!

【问题讨论】:

  • 没有do-while?
  • 似乎与stackoverflow.com/questions/52798375/… 的代码相同,但问题不同
  • @JaromandaX- 你是对的,它是 if-else。我的错误:(
  • @JaromandaX-这是同一个问题-我研究了一种解决方法(try-catch),但似乎难以实施。我希望得到一些帮助。

标签: javascript try-catch


【解决方案1】:

我想这可以解决问题

document.getElementById("find").click();
window.setInterval(function() {
  try {
      document.getElementById("bba").click(); 
  } catch(e) {
      document.getElementById("find").click();
  }
}, 1000);

但是,这并没有改变底层逻辑 - 所以不确定这有什么帮助

【讨论】:

  • 非常感谢!你是对的,它不起作用。但我的问题是为什么。我不明白如果另一个按钮不可用,为什么它不会按查找。我猜 jscript 比它看起来更难。感谢您的帮助。
【解决方案2】:

我不会将 try..catch 用于任何可用的替代逻辑。编写您知道会引发错误的代码就像凭感觉停车一样。

if..else 或类似的构造绝对没有错,请考虑:

window.setInterval(function() {
  (document.getElementById("bba") || document.getElementById("find")).click();
}, 1000);

如果 bba 有时存在并且 find 始终存在,则不会抛出错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多