8

我希望能够(从 Javascript)导航,就好像单击了链接一样(但不一定在单击链接时 - 可能是另一个动作)。

我知道window.location.href = '...';and window.location.replace('...');,但是这些方法不允许用户通过按住Cmd(OS X) 或. 来指定新窗口、新选项卡等Ctrl。我希望能够在不手动检查这些键的状态的情况下做到这一点。

4

2 回答 2

5

如果你想同时处理点击,正常和 ctrl-click 这就是我使用的:

$("li").on("click", function(e){
    var url = $(this).find("a").attr("href");
    if(e.ctrlKey){
        $('<a href="'+ url + '" target="_blank"></a>')[0].click();
    } else {
        document.location = url;
    }
    return false;
});
于 2013-09-05T15:08:30.317 回答
4

这仅在您从用户触发的单击处理程序中执行时才有效,否则,浏览器会将其检测为不需要的弹出窗口并阻止它:

<div id="test">open in new tab</div>

$('#test').click(function(){    
    openInNewTab('http://example.com');
});

function openInNewTab(url)
{
    $('<a href="'+ url + '" target="_blank">open in new tab</a>')[0].click();
}

我认为没有其他选择,因为这是一种安全行为。

于 2012-10-05T04:09:41.960 回答