1

这是我的简单代码

 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>

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

4

4 回答 4

2

尝试这个:

<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>
于 2013-10-28T11:45:55.847 回答
0

尝试这样的事情:

<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>
于 2013-10-28T11:51:39.483 回答
0

像这样做:

 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>
于 2013-10-28T12:35:20.000 回答
-1

您可以改为使用<a href="http://www.google.com" onclick="goto();">Hello</a> 这应该可以解决问题。即添加url到锚标签的href

于 2013-10-28T11:54:16.987 回答