现在,我有以下代码:
<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>
实际上,如果您单击背景 div 上的任意位置,Javascript 将模拟对实际链接的单击并将您带到目标页面。
但是,当您尝试按住 ctrl 并单击时,这并不能很好地工作,因为浏览器不会打开新选项卡,而只是将 url 加载到当前窗口中。
我希望在单击背景时具有正常的浏览器行为(即打开一个新选项卡,不要更改当前窗口以进行 ctrl-click),而不是这种行为。有没有办法在 Javascript/jQuery 中做到这一点?
我不想尝试检测“ctrl”键是否被按下——有一些类似的情况,我宁愿有一个解决所有问题的解决方案,而不是像这样尝试捕捉每一个边缘情况。
最佳答案
将执行此操作的函数(新窗口或选项卡,无法控制)...
function open_url(url ) {
if (flag) {
window.open(url, '_blank');
window.focus();
} else {
window.location.href = url;
}
}
当然,您必须捕获 Ctrl 按键...
$(window).keypress(function(event) {
if (event.ctrlKey) {
// set flag
flag = true;
} else {
// unset flag
flag = false;
}
});
关于javascript - 模拟点击 Javascript/jQuery 中的链接产生正常的浏览器行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14169838/