繁体   English   中英

如何在新窗口以及右键单击新选项卡/窗口中打开链接?

[英]How to open a link in a new window and also in a new tab/window with right click?

我有一个帮助链接。 如果用户单击它,它将打开一个具有固定宽度和高度的新窗口。 效果很好,除了当我右键单击链接时,没有选项“在新标签页中打开”(在IE中),或者我可以在新标签页中打开,但被定向到空白页(chrome)。 有谁能像链接一样帮助您实现此目的,并且默认情况下也可以在新窗口(不是标签页)中打开它吗?

<html>
    <head>
        <title>
        link
        </title>

        <script type="text/javascript">

        function activateHelpView(helpUri) {
            var WindowId = 'SomeWindowId';
            var helpWindow = window.open(helpUri, WindowId, 'width=400,height=500,menubar=no,status=no,scrollbars=no,titlebar=no,toolbar=no,resizable=yes');
            if (helpWindow) {
                (helpWindow).focus();
            }
        }
        </script>
    </head>

    <body>
        <a id='PortOrderPageLearnMoreLink' href='javascript:' title='Learn more' onclick='activateHelpView("http://stackoverflow.com/")'>Learn more</a>

    </body>
</html>

使用真实链接,而不是空的javascript:地址。 onclick处理程序可以阻止链接执行任何“正常”操作,但是右键单击将具有一些作用。

target=_blank是一个很强的暗示,您希望在新窗口中打开页面,但是,是否完全尊重(无论是在窗口中还是在选项卡中)页面都是无法控制的。

 <script type="text/javascript"> function activateHelpView(helpUri) { var WindowId = 'SomeWindowId'; var helpWindow = window.open(helpUri, WindowId, 'width=400,height=500,menubar=no,status=no,scrollbars=no,titlebar=no,toolbar=no,resizable=yes'); if (helpWindow) { (helpWindow).focus(); } } </script> <a id='PortOrderPageLearnMoreLink' href='http://stackoverflow.com/' title='Learn more' onclick='activateHelpView(this.href); return false;' target='_blank'>Learn more</a> 

处理所有这些问题的一种更现代的方法(尤其是在有多个帮助链接的情况下)是为所有这些方法添加一个类,然后运行一些JavaScript依次向其添加点击处理程序。 HTML保持干净(并带有真实链接,如果禁用或未加载JavaScript,则HTML仍然有效)。

 var helplinks = document.querySelectorAll('.helplink'); for (var i = 0; i < helplinks.length; ++i) { helplinks[i].addEventListener('click', activateHelpView); } function activateHelpView(event) { event.stopPropagation(); // don't let the click run its course event.preventDefault(); var helpUri = this.href; // "this" will be the link that was clicked var WindowId = 'SomeWindowId'; var helpWindow = window.open(helpUri, WindowId, 'width=400,height=500,menubar=no,status=no,scrollbars=no,titlebar=no,toolbar=no,resizable=yes'); if (helpWindow) { helpWindow.focus(); } } 
 <a id='PortOrderPageLearnMoreLink' href='http://stackoverflow.com/' title='Learn more' class='helplink' target='_blank'>Learn more</a> 

不允许StackOverflow片段使用其中某些功能。 一个有效的例子可以在这里找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM