How to navigate to a URL while respecting Ctrl-click opens URL in new tab?

dom-events, javascript, unobtrusive-javascript

Solution

If you want to handle both clicks, normal and ctrl-click this is what I use :

$("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;
});

Problem

I'd like to be able to (from Javascript) navigate as though a link had been clicked (but not necessarily when a link is clicked -- could be another action). I know `window.location.href = '...';` and `window.location.replace('...');`, but these methods don't allow the user to specify new window, new tab, etc. by holding Cmd (OS X) or Ctrl. I'd like to be able to do it without manually checking the states of these keys.

Original source