使用DIV作为链接触发新选项卡快捷方式的重定向
Using DIV as link triggers redirect on new tab shortcut
我有一个页面(小部件)的一部分,我想用它作为一个链接(点击任何地方都会去到不同的页面):
<!-- just an example. real application is quite a bit more complex -->
<div data-href="/page">
<h1><a href="/page">Title of sample content</a></h1>
<p>
some content here with an image
<img src="image.jpg">
</p>
<div>
and many more elements in here
<div>
with nested structure with semantic meaning
</div>
</div>
</div>
由于该部分是<div>
,我不能围绕<a>
包装,因为这是违反HTML规范的。我也不能将divs
更改为span
,因为它们实际上具有语义意义。
目前我附加了一个JS click
事件,我改变了浏览器的位置,有效地作为一个链接:
$('div').click(function() {
window.location=$(this).data("href");
});
这工作正常,除非当你Ctrl+Click
或Cmd+Click
在<a>
上打开新的选项卡中的链接。由于此时您没有显式地进行右键单击,因此浏览器将其注册为单击,因此函数无论如何都会执行。
我想我可以检查是否有任何修改键按在点击事件,但我觉得这是有点麻烦。有一个很好的JS解决方案吗?
你可以这样做(jQuery为点击处理程序):
$(selector).click(function(e) {
if(e.shiftKey) {
//Shift-Click
}
if(e.ctrlKey) {
//Ctrl+Click
}
if(e.altKey) {
//Alt+Click
}
});
你可以在点击处理程序中的if中处理任何你想要的,如上面所示
相关文章:
- javascript中的快捷方式融合优化
- 用于导出导入的快捷方式
- 如何制作链接到网页特定元素的桌面快捷方式
- 如何启用Emmet'的选项卡键处理程序(HTML快捷方式)
- 使用全局快捷方式(如 Spotlight/Launchy)将电子应用程序带到前台
- 有没有一种快捷方式可以让我用javascript或jQuery设置对象的字段
- 用我自己的自定义快捷方式覆盖浏览器快捷方式
- 在选定元素中上下移动选项的方式
- 创建一个键盘快捷方式来启动Google Chrome扩展
- 触发器快捷方式”;STRG+Plus按钮”;使用Javascript
- 动态网页的快捷方式
- 下划线/洛达什号中的快捷方式,用于(递归)设置对象的所有属性
- 将键盘快捷方式关联到鼠标事件的方法
- 替代Tinymce中的快捷方式指定
- Javascript快捷方式,将字符串附加到数组的所有值中
- 在 Mac 上的 Firebug 中继续执行脚本的快捷方式是什么?
- TinyMCE v4.3.6 - 快捷方式
- 通过 JavaScript URL 可变快捷方式扩展 HTML URL
- 为打印选项javascript创建个人快捷方式
- 使用DIV作为链接触发新选项卡快捷方式的重定向