javascript 中断href链接事件

d7v8vwbk  于 2022-12-10  发布在  Java
关注(0)|答案(1)|浏览(155)

我搜索了一个方法,在点击html a元素后中断进程。可以在这个a元素上产生一个onclick="alert();"事件,进程会暂时停止,直到点击OK按钮,或者进程被中断,当页面重新加载或点击上一页时。中断也是,但不是完美的。与confirm()类似,但单击“取消”不会取消该过程。
第一个
这个例子对我不起作用。下面是代码:

<!DOCTYPE html>
<html>
<body>
<a href="https://www.example.com" onclick="myFunction()" target="_blank" rel="nofollow">example.com</a>
<script>
function myFunction() {
  var confirmresult = confirm("Press a button!");
  if (confirmresult === true) {
    // OK = go away!
  } else {
    // Cancel = stay here!
  }
}
</script>
</body>
</html>
brgchamk

brgchamk1#

我已经找到了一个解决方案,但我不确定它是否有效。请帮助!
这里面的人想的可不是那么容易的。
问题是,它应该是一个现有网站的解决方案。不需要新的编码。只插入function myFunction(). onclick="myFunction()" is always present。而且它只可能把JS代码放在head(而不是页脚),因为为此一个自定义的<script>总是通过PHP加载到网页中。

第一个,一个方法,只编码一个新的functionjavascript:void(0);

这里运行的代码片段函数对我来说不起作用。
第一个
代码:

<!DOCTYPE html>
<html>
<body>
<a id="demo" href="https://www.example.com" onclick="myFunction()" target="_blank" rel="nofollow">example.com</a>
<script>
function myFunction() {
  var confirmresult = confirm("Press a button!");
  if (confirmresult === true) {
    // OK = go away!
  } else {
    // Cancel = stay here!
    document.getElementById("demo").removeAttribute("target");
    document.getElementById("demo").href = "javascript:void(0);";
  }
}
</script>
</body>
</html>

JSF中间文件:https://jsfiddle.net/dLp8qtcm/

第二个,使用**preventDefault()**的解决方案。考虑event而不是this。为此,需要在onclick="myFunction(event)"中的event内编辑网页。

谢谢你对preventDefault()的提示,但是答案中的例子对我来说不起作用。下面是一个有效的解决方案。
这里运行的代码片段函数对我来说不起作用。
第一个

<a href="https://www.example.com" onclick="myFunction(event)" target="_blank" rel="nofollow">example.com</a>
<script>
function myFunction(e) {
  var confirmresult = confirm("Press a button!");
  if (confirmresult == true) {
    // OK = go away!
  } else {
    // Cancel = stay here!
    e.preventDefault();
  }
};
</script>

JSF中间文件:https://jsfiddle.net/osanthdq/

相关问题