Javascript在右键单击新选项卡时未执行

Javascript not executing when right clicked into new tab

本文关键字:执行 选项 右键 单击 新选项 Javascript      更新时间:2023-09-26

这是我的简单代码

 function goto() {
        /* Some code to be executed */
        if (a == "1")
              location.href = "http://www.google.com";
        else
              location.href = "http://www.example.com";
    }

这是 html

<a href="#" onclick="goto();">Hello</a>

当我正常单击时,这工作得很好,但是如果我右键单击它并在新选项卡中打开,它不会执行。

试试这个:

<a href="javascript:goto()">Hello</a>
 function goto() {
        /* Some code to be executed */
        window.open("http://www.google.com");
    }

如果要在鼠标右键单击的新选项卡中打开,

<a href="http://www.google.com">Hello</a>

按鼠标右键单击并在新选项卡中打开

你可以试试这个:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script>
        function goto() {
            window.location = "http://www.google.com";
        }
        document.addEventListener('DOMContentLoaded', function () {
            document.getElementsByTagName('a')[0].addEventListener('contextmenu', function (ev) {
                ev.stopPropagation();
                ev.preventDefault();
                goto();
            });
            document.getElementsByTagName('a')[0].addEventListener('click', function (ev) {
                goto();
            });
        }, false)
    </script>
</head>
<body>
<a href="#">Hello</a>
</body>
</html>

尝试这样的事情:

<a href="#" id="myId">Hello</a>
<script>
document.getElementById('myId').addEventListener('contextmenu', function(ev){
    gotoFunc(ev);
});
function gotoFunc(ev){
    //run this when right clicked over #myId element
}
</script>
这样做

 function changeDest(elem) {
        /* Some code to be executed */
        if (a == "1")
              elem.href = "http://www.google.com";
        else
              elem.href = "http://www.example.com";
    }
 <a href="#" onmousedown="changeDest(this);">Hello</a>

你可以改用<a href="http://www.google.com" onclick="goto();">Hello</a>这应该可以解决问题。即将 URL 添加到锚标记的 href 中