Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用rightClick使锚定标记(与JS函数调用配合使用)正常工作>;是否在新选项卡中打开?_Javascript_Jquery_Html_Anchor - Fatal编程技术网

Javascript 如何使用rightClick使锚定标记(与JS函数调用配合使用)正常工作>;是否在新选项卡中打开?

Javascript 如何使用rightClick使锚定标记(与JS函数调用配合使用)正常工作>;是否在新选项卡中打开?,javascript,jquery,html,anchor,Javascript,Jquery,Html,Anchor,我用的是锚定标签 <a href="#" onClick="javascriptMethod();">asdasdasd</a> 此javascript函数动态决定要打开的页面。单击即可正常工作。 但当我右键单击并在新选项卡中打开时,它只会显示一个空白 有什么建议吗?我想你可以用这样的方法: jQUERY $(function(){ $('a').mousedown(function(e){ // On mouse down check

我用的是锚定标签

<a href="#" onClick="javascriptMethod();">asdasdasd</a>

此javascript函数动态决定要打开的页面。单击即可正常工作。 但当我右键单击并在新选项卡中打开时,它只会显示一个空白


有什么建议吗?

我想你可以用这样的方法:

jQUERY

$(function(){

    $('a').mousedown(function(e){

         // On mouse down check to see if it was left, middle or right click

         switch (e.which) {

            case 1: // Left Mouse CLick

                // Prevent click event on link

                e.preventDefault(); 

                // Redirect to where javascriptMethod() says

                location.href = javascriptMethod(); 

            break;

            case 2: // Middle Mouse CLick

                // Prevent click event on link

                e.preventDefault(); 

                // Redirect to where javascriptMethod() says

                location.href = javascriptMethod(); 

            break;

            case 3: // Right Mouse CLick

                // On right mouse click change the href attribute of the link.

                // This way the 'Open link in new tab' and 'Open link in new window' 

                // will use the right link

                $(this).prop('href', javascriptMethod());

            break;
        }

    });

    // Here you will decide which link to return. I just hard coded  Google

    function javascriptMethod() {

        return 'http://www.google.com';
    }

})
HTML

<a href="javascript:void(0)">Link</a>

我假设您的javascript函数将模仿
导航的自然行为。我建议使用其他HTML标记,如
等。这样做会阻止浏览器在上下文菜单中显示“在新选项卡中打开”选项

@tliokos的答案可能有效,但我认为它会让用户感到困惑,并改变点击事件的行为,特别是在使用
mousedown()
时,如果您注意到,您的浏览器通常只在mouseup上开始导航,等等