Javascript 在Firefox中,双击href设置为#但onclick设置为转到另一个页面的标签将有效地使我们保持在当前页面上
假设我们有ff。在a.html中:Javascript 在Firefox中,双击href设置为#但onclick设置为转到另一个页面的标签将有效地使我们保持在当前页面上,javascript,firefox,anchor,double-click,Javascript,Firefox,Anchor,Double Click,假设我们有ff。在a.html中: <script> function onClick() { // Do some important stuff and then... location = "b.html"; } </script> <a href="#" onclick="onClick();">Link</a> 函数onClick(){ //做一些重要的事情然后。。。 location=“b.html”; }
<script>
function onClick() {
// Do some important stuff and then...
location = "b.html";
}
</script>
<a href="#" onclick="onClick();">Link</a>
函数onClick(){
//做一些重要的事情然后。。。
location=“b.html”;
}
双击链接将触发事件处理程序onClick。但是,双击中的第二次单击似乎被解释为另一次单击,并导致页面跳转到指定的锚。实际上,位置没有改变
我的问题是:
href="javascript:void(0);"
相反使用
window.location=“b.html”
<代码>位置本身没有特殊意义
起锚是无关的。您可以通过停止事件来禁用它
function onClick(event) {
event.preventDefault();
event.stopPropagation();
}
<a href="#" onclick="onClick(event)">Link</a>
函数onClick(事件){
event.preventDefault();
event.stopPropagation();
}
gshankar是对的
另一种变体:
<script>
function onClick() {
location = "b.html";
return false;
}
</script>
<a href="#" onclick="return onClick();">Link</a>
函数onClick(){
location=“b.html”;
返回false;
}
或者您可以将链接指向函数并跳过onclick事件:
<script>
function onClick() {
location = "b.html";
return false;
}
</script>
<a href="javascript:onClick();">Link</a>
函数onClick(){
location=“b.html”;
返回false;
}
副作用:链接从未标记为已访问,但由于它们的外观类似于按钮,所以这没关系。没有提到我正在修复自定义标记。用户可能希望在其单击处理程序中使用“this”。我认为“this”在“href”attrib中表示其他内容。窗口是全局对象。这意味着当自己编写时,location
在全局范围内可用。这与窗口位置相同。这就是为什么如果你愿意,你也可以做window.window.window.location
。实际上,您在代码中对事件
执行相同的操作。它位于全局范围内,因此可以使用window.event
访问。此外,您的答案缺少返回false代码>旧浏览器的变体,以及onclick=“return onclick(event);”
。