(译者注: 本文解决的是按 Ctrl键时使用JS打开新页面的问题)
在简化的HTML5规范中,允许在 A 标签内包含多个 DIV 和/或其他块级元素. 现在只要用 <a> 标签包住块元素,就能搞定原来需要用JavaScript来监听并调用 window.location 实现页面跳转(redirect)功能.someElement.addEventListener(‘click‘, function(e) {
// URL地址是什么都行,或者你也可以使用其他的代码来指定.
// 此处用的是该元素的 `data-src` DOM属性(attribute)
window.location = someElement.get(‘data-url‘);
});…但这有时会有很糟的用户体验, 当按住CTRL键(Mac是COMMAND键),再用鼠标点击时,它会在同一个(标签页)窗口内打开链接。知道有这个问题,你肯定想到了该如何去解决.我们修改一小点代码就能达成这个目的,赶快花点时间去修复你的listener吧:
someElement.addEventListener(‘click‘, function(e) {
// 获取URL
var url = someElement.get(‘data-url‘);
// 判断是否按下了CTRL键
if(e.metaKey || e.ctrlKey || e.button === 1) {
window.open(url);
} else {
window.location = url;
}
});完善用户体验: 活用window.location与window.open解决页面跳转问题
原文地址:http://blog.csdn.net/renfufei/article/details/38960865