html按住Ctrl键打开链接,JavaScript实现按Ctrl键打开新页面

(译者注: 本文解决的是按 Ctrl键时使用JS打开新页面的问题)

当然,像下面这样用一个简单的listener 也能实现我们的需求:

代码如下:

URL地址是什么都行,或者你也可以使用其他的代码来指定.

// 此处用的是该元素的 `data-src` DOM属性(attribute)

window.location = someElement.get('data-url');

});

…但这有时会有很糟的用户体验,当按住CTRL键(Mac是COMMAND键),再用鼠标点击时,它会在同一个(标签页)窗口内打开链接。知道有这个问题,你肯定想到了该如何去解决.我们修改一小点代码就能达成这个目的,赶快花点时间去修复你的listener吧:

代码如下:

获取URL

var url = someElement.get('data-url');

// 判断是否按下了CTRL键

if(e.MetaKey || e.ctrlKey || e.button === 1) {

window.open(url);

} else {

window.location = url;

}

});

原文作者已经在 http://davidwalsh.name/ 网站上实现了这个功能,在使用window.location进行页面重定向时你也应该记得这一点。这是一个很小的代码改进,但对可用性的提高却是非常重要的!

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值