我正在尝试使用Action Link / Hyperlink()/ Link Buttons从ASP.NET MVC视图(.html)调用JavaScript函数。左键单击效果很好,但右键单击链接并选择“打开新选项卡或页面”不起作用。
到目前为止,我的尝试是:
<a href="#" onclick=aFunction()>link</a>
aFunction(object)
{
alert('Inside Javascript Function')
}
答案 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)
基本上,您将该函数存储在本链接打开的页面的本地存储和页面加载事件中,您将检查是否存在存储在本地存储中的函数,如果存在,则执行它。