模拟Javascript/jQuery中的链接点击,产生正常的浏览器行为

wai*_*933 6 javascript jquery click

现在,我有以下代码:

<script> 
$("#clickme").click(function(){
    $("#clicker").click();
}); 
</script>
<div id="clickme" style="height:20em; width:20em;">
    <a id="clicker" href="http://www.google.com"> Link </a>
</div>
Run Code Online (Sandbox Code Playgroud)

实际上,如果您单击背景div上的任何位置,Javascript将模拟实际链接上的单击并将您带到目标页面.

但是,当您尝试按住Ctrl键单击时,这不能很好地工作,因为浏览器不会打开新选项卡,而只是将URL加载到当前窗口中.

而不是这种行为,我希望在单击背景时具有正常的浏览器行为(即,打开新选项卡,不要更改当前窗口以进行按住Ctrl键单击).有没有办法在Javascript/jQuery中执行此操作?

我宁愿不尝试检测"ctrl"键被抑制 - 有一些类似的情况,我宁愿有一个解决方案来解决所有问题,而不是试图抓住这样的每个边缘情况.

Gor*_*man 2

可以执行此操作的函数(新窗口或选项卡,无法控制哪个)...

function open_url(url ) {
    if (flag) {
        window.open(url, '_blank');
        window.focus();
    } else {
        window.location.href = url;
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,你必须捕获Ctrl按键......

$(window).keypress(function(event) {
    if (event.ctrlKey) {
        // set flag
        flag = true;
    } else {
        // unset flag
        flag = false;
    }
});
Run Code Online (Sandbox Code Playgroud)