提问人:Andy 提问时间:5/31/2012 最后编辑:Brian Tompsett - 汤莱恩Andy 更新时间:9/12/2020 访问量:2388
如何在尊重 Ctrl 单击在新选项卡中打开 URL 的同时导航到 URL?
How to navigate to a URL while respecting Ctrl-click opens URL in new tab?
问:
我希望能够(从 Javascript 中)导航,就好像链接被点击了一样(但不一定是点击链接时——可能是另一个操作)。
我知道 和 ,但这些方法不允许用户通过按住 (OS X) 或 .我希望能够在不手动检查这些键的状态的情况下做到这一点。window.location.href = '...';
window.location.replace('...');
CmdCtrl
答:
4赞
Cesar Varela
10/5/2012
#1
这只有在用户触发的点击处理程序中执行此操作时才有效,否则,浏览器会将其检测为不需要的弹出窗口并阻止它:
<div id="test">open in new tab</div>
$('#test').click(function(){
openInNewTab('http://example.com');
});
function openInNewTab(url)
{
$('<a href="'+ url + '">open in new tab</a>')[0].click();
}
我认为没有其他选择,因为这是一种安全行为。
评论
0赞
Andy
10/12/2012
这并不理想,但我会接受的。
6赞
Joël
9/5/2013
#2
如果您想处理两次点击,正常和 ctrl 单击这就是我使用的:
$("li").on("click", function(e){
var url = $(this).find("a").attr("href");
if(e.ctrlKey){
$('<a href="'+ url + '"></a>')[0].click();
} else {
document.location = url;
}
return false;
});
评论
1赞
Andy
2/27/2016
有什么方法可以不在前台打开它?
评论