在 Firefox 中,双击 href 设置为 # 但将 onclick 设置为转到另一个页面的标签将有效地使我们保留在当前页面上
假设我们有 ff。在a.html中:
<script>
function onClick() {
// Do some important stuff and then...
location = "b.html";
}
</script>
<a href="#" onclick="onClick();">Link</a>
双击链接将触发事件处理程序onClick。然而,双击中的第二次单击似乎被解释为另一次单击,并导致页面跳转到指定的锚点。实际上,位置没有改变。
我的问题是:
这是浏览器错误或功能吗?
有办法解决此行为吗?
Suppose we have the ff. in a.html:
<script>
function onClick() {
// Do some important stuff and then...
location = "b.html";
}
</script>
<a href="#" onclick="onClick();">Link</a>
Double-clicking on Link will trigger the event-handler onClick. However, the second click in the double-click seems to be interpreted as another click and causes the page to jump to the named anchor. In effect, the location isn't changed.
My questions are:
Is this a browser bug or feature?
Is there a way to work-around this behavior?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你可以尝试
一下
You could try
instead
使用
window.location = "b.html"
。location
本身没有特殊含义。锚跳是无关的。您可以通过停止事件来禁用它。
Use
window.location = "b.html"
.location
by itself has no special meaning.The anchor jumping is unrelated. You can disable it by stopping the event.
gshankar 是对的
另一种变体:
gshankar is right
Another variant:
或者您可以将链接指向该函数并跳过 onclick 事件:
Or you can point the link at the function and skip the onclick event: