javascript - 如果用户单击一个链接,然后快速单击另一个链接,则不会触发第二个链接的 onclick。我们如何避免这种情况?

标签 javascript html anchor

对标题表示歉意,我发现很难简洁地定义我的问题,这是我能做的最好的事情。如果有人想编辑它以添加更好的标题,请成为我的客人。

无论如何,这个问题。我们的网页上允许用户删除某些内容。他们通过点击删除链接来完成此操作,如下所示:

<a href="http://localhost/a/path/remove-thing.html?ID=42" onclick="return confirm('Are you sure you want to remove this thing?');" >Remove this thing!</a>

现在,显然,通常当用户单击该链接时,他们会看到一个 JavaScript 确认框,要求他们确认是否要删除该内容。如果他们单击 ccel,则 onclick 事件为 false,因此不会发生删除;如果他们点击“确定”,那么就可以了。

我的问题是,如果用户单击页面中的另一个链接(到任何地方),然后在加载第一个页面之前快速单击删除链接,则 JavaScript 永远不会被触发,但事情 被删除 - 当他们点击“删除这个东西!”时他们触发了该 URL,而不是他们最初单击的 URL。有办法避免这种情况吗?我们的确认操作是否“错误”?我认为这与浏览器关闭 JavaScript 检查有关,当您单击第一个链接时,它准备呈现新页面,但在页面消失之前仍然接受 URL 的更改...

(这已经在 Firefox 3.6 中进行了测试,并确认了那里的问题。尚未测试其他浏览器。)

最佳答案

解决这个问题的一种方法是,可以更优雅地降级,如下所示:

  1. 创建一个单独的确认页面,这些链接会将您发送至该页面
  2. 使用 javascript 显示对话框,如果"is",则将用户直接发送到删除页面

这样,即使没有 JavaScript,它也能工作,并且有望消除您的问题

编辑

如果js始终存在,您可以始终将默认链接设置为空,并在确认后重定向用户

关于javascript - 如果用户单击一个链接,然后快速单击另一个链接,则不会触发第二个链接的 onclick。我们如何避免这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3556547/

相关文章:

javascript - AJAX调用后如何正确获取JSON?

php - 居中图像

javascript - anchor 在 IE7 上分成两部分

jQuery代码动态添加样式到 anchor 标签

javascript - 类型错误 : Failed to construct 'ClipboardItem' : Failed to convert value to 'Blob'

javascript - 组织从 Ajax 调用返回的 JavaScript 的最佳实践

javascript - 如何将样式应用于 jquery 自动完成下拉列表

javascript - html5 将 <div> 拖放到相应位置

javascript - 使用 javascript 随机调用函数时,如何确保至少一个元素的可见性?

java - 如何使用 Selenium 选择 javascript 选项卡?