右键单击超链接/操作链接/链接按钮时,“在新选项卡或页面中打开”不显示

时间:2017-10-12 14:04:57

标签: javascript html5 asp.net-mvc-4

我正在尝试使用Action Link / Hyperlink()/ Link Buttons从ASP.NET MVC视图(.html)调用JavaScript函数。左键单击效果很好,但右键单击链接并选择“打开新选项卡或页面”不起作用。

到目前为止,我的尝试是:

<a href="#" onclick=aFunction()>link</a>

    aFunction(object)
    {
       alert('Inside Javascript Function')
    }

2 个答案:

答案 0 :(得分:0)

This answer可能有所帮助。

尝试为您的超链接提供id属性(例如id="foo"),并创建一个点击处理程序,只要右键单击a#foo,就会执行指定的操作:

document.getElementById("foo").onmousedown = function(event) {
    if (event.which == 3) {
        alert('Inside Javascript Function');
    }
}

编辑

根据你的评论:

  

我不想在用户右键单击后立即执行该功能。我想在用户右键单击链接后单击打开新选项卡选项执行该功能。

我不相信这是可能的(除非有一些神秘的Chrome JavaScript API可以检测到此类事件)。 JavaScript知道Chrome如何运作是没有意义的。此外,JavaScript的沙盒化方式使其无法访问用户的本地文件系统 - 通过扩展,它不应该知道Google Chrome进程本身在做什么。

答案 1 :(得分:0)

使用此答案中提到的方法:How to run function on new tab from main tab? (Google Chrome)

基本上,您将该函数存储在本链接打开的页面的本地存储和页面加载事件中,您将检查是否存在存储在本地存储中的函数,如果存在,则执行它。