我希望能够(来自Javascript)导航,就像点击链接一样(但不一定是点击链接时 - 可能是另一个动作)。
我知道window.location.href = '...';
和window.location.replace('...');
,但这些方法不允许用户通过按住Cmd(OS X)或Ctrl来指定新窗口,新选项卡等。我希望能够在不手动检查这些键的状态的情况下完成它。
答案 0 :(得分:5)
如果你想同时处理两次点击,普通和按住Ctrl键点击这就是我使用的:
$("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;
});
答案 1 :(得分: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();
}
我认为没有其他选择,因为这是一种安全行为。