8

リンクがクリックされたかのように(Javascriptから)ナビゲートできるようにしたい(ただし、リンクがクリックされたときとは限らない-別のアクションである可能性がある)。

と は知っwindow.location.href = '...';window.location.replace('...');いますが、これらの方法では、Cmd(OS X) またはCtrl. これらのキーの状態を手動で確認せずに実行できるようにしたいと思います。

4

2 に答える 2

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;
});
于 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 に答える