Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 多次单击超链接,不应打开多个选项卡/窗口。只能打开一个window.tab_Javascript_Html_Jsp Tags - Fatal编程技术网

Javascript 多次单击超链接,不应打开多个选项卡/窗口。只能打开一个window.tab

Javascript 多次单击超链接,不应打开多个选项卡/窗口。只能打开一个window.tab,javascript,html,jsp-tags,Javascript,Html,Jsp Tags,在JSP中,我们使用显示付款摘要超链接,如下所示: <a href="javascript:window.print()"> <font size="2px">Print Summary</font></a> 每次用户单击超链接时,都会打开一个新选项卡,其中包含一个suammary。我们希望在用户单击超链接时升级此功能,只打开一个选项卡/窗口,而不是多个 我该怎么做呢?这很糟糕,你不应该这么做。不要破坏网络 然而,您必须捕捉点击并添加一些逻辑

JSP
中,我们使用显示付款摘要超链接,如下所示:

<a href="javascript:window.print()">
<font size="2px">Print Summary</font></a>

每次用户单击超链接时,都会打开一个新选项卡,其中包含一个suammary。我们希望在用户单击超链接时升级此功能,只打开一个选项卡/窗口,而不是多个


我该怎么做呢?

这很糟糕,你不应该这么做。不要破坏网络

然而,您必须捕捉点击并添加一些逻辑来查看是否应该停止事件。如果您的标记如下所示:

<a href="blah.html" class="self-destructing">Don't you dare click me twice!</a>

请注意,这只捕获点击,因此如果您使用键盘或其他方式激活链接,链接仍然会被跟踪。

我选择了简单方法函数openPaymentReceiptPopup(){window.open(“jsp/ordering/orderingReceiptPopup.jsp”,“name”);返回false;}
[].forEach.call(document.querySelectorAll('a.self-destructing'), function(el){
    el.addEventListener('click', function(e) {
        if (typeof e.target.dataset.visited !== 'undefined') {
            e.preventDefault();
        } else {
            e.target.setAttribute('data-visited', 1);
        }
    }, false);
});