【问题标题】:'Open in New Tab or Page' not appearing when Hyperlink/Action Link/Link Buttons are right-clicked右键单击超链接/操作链接/链接按钮时未出现“在新选项卡或页面中打开”
【发布时间】:2017-10-12 14:04:57
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我在锚标签上也添加了这样的目标属性。 链接

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    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 进程本身在做什么。

    【讨论】:

    • 这看起来接近我的目标,但我不想在用户右键单击时立即执行该功能。我想在用户右键单击链接并单击打开新选项卡选项后执行该功能。谢谢。
    • @G.Ashu 我认为这是不可能的。请查看我的更新答案。
    猜你喜欢
    • 2022-07-30
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 2011-08-31
    • 2016-01-15
    • 1970-01-01
    相关资源
    最近更新 更多