【问题标题】:how to add some kind of delay in javascript, race condition between href and onclick如何在javascript中添加某种延迟,href和onclick之间的竞争条件
【发布时间】:2026-01-23 11:25:02
【问题描述】:

问题似乎在chrome和ie9等浏览器中href和onclick之间存在竞争条件,所以我希望onclick先运行然后返回一个按钮url,所以我编写了代码

 function track_cb(link) {  
  Cancel();     
 //alert(window.location.href);
  return true;
   }

我修改了类似这样的 href

  <A HREF="some button url" onclick="return            
   track_cb(this);"

cancel() 之后,我需要一些时间让按钮 url 接下来执行,如何正确实现?

提前谢谢....

【问题讨论】:

  • 您能改写一下吗?
  • 我需要返回一个按钮 URL,我在某个文本区域添加一些文本说并单击该按钮,然后我需要先清除该记录上的一些锁定,然后转到按钮 URL ,但是在某些浏览器中取消操作没有被执行,所以写了上面,希望清楚,首先它有点像onclick =“cancel()”,所以我修改了它
  • 您能否改写以下内容:“我需要返回按钮 URL”?像return 关键字一样“返回”?
  • 好吧,让我说清楚,我打开 1 张票,在描述字段中输入一些数据但没有保存,我点击“主页”按钮,在某些浏览器中,当我这样做时,作为票处于编辑模式,锁没有被清除,它将返回主页,我观察到这是由于 cancel() 调用没有正确执行,所以我添加了上面的代码希望首先清理锁并给一些时间到达那个href,
  • 听起来您想阻止点击,等待您的方法完成,然后继续访问该 URL。对吗?

标签: javascript onclick href delay conditional-statements


【解决方案1】:

删除 href 属性并在函数末尾插入一个 javascript 命令以转到 url。如果函数需要很长时间执行(例如,它从另一个网页/服务器检索某些内容),请使用回调。

【讨论】: