リンクがクリックされたかのように(Javascriptから)ナビゲートできるようにしたい(ただし、リンクがクリックされたときとは限らない-別のアクションである可能性がある)。
と は知っwindow.location.href = '...';
てwindow.location.replace('...');
いますが、これらの方法では、Cmd(OS X) またはCtrl. これらのキーの状態を手動で確認せずに実行できるようにしたいと思います。
リンクがクリックされたかのように(Javascriptから)ナビゲートできるようにしたい(ただし、リンクがクリックされたときとは限らない-別のアクションである可能性がある)。
と は知っwindow.location.href = '...';
てwindow.location.replace('...');
いますが、これらの方法では、Cmd(OS X) またはCtrl. これらのキーの状態を手動で確認せずに実行できるようにしたいと思います。
通常のクリックと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;
});
これは、ユーザーによってトリガーされたクリック ハンドラーから実行した場合にのみ機能します。それ以外の場合、ブラウザーはそれを不要なポップアップとして検出し、ブロックします。
<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();
}
これはセキュリティ上の動作であるため、他に選択肢はないと思います。