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

时间:2014-07-31 12:20:32

标签: javascript html jsp-tags

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

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

每次用户点击超链接时,都会打开一个带有suammary的新标签页。我们希望每当用户点击超链接时都要升级此功能,只应打开一个选项卡/窗口,而不是多个。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

然而,你必须抓住点击并添加一些逻辑,看看你是否应该停止这个事件。如果你的标记看起来像这样:

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

你会做类似的事情:

[].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);
});

请注意,这只会捕获点击次数,因此如果您使用键盘或其他方式激活链接,则仍会遵循该链接。