是否可以检查是否单击了链接以在新窗口中打开? 我的意思是ctrl或Shift键按下是清楚的,您可以处理此事件,但是浏览器中的右键单击上下文菜单呢?在这里,您可以单击在另一个窗口中打开的上下文菜单项。
jquery context()方法在打开上下文菜单时触发:
$("a").contextmenu(function() {
alert("context");
});
$("a").click(
if (evnt.ctrlKey || evnt.shiftKey || evnt.metaKey ||
(evnt.button && evnt.button == 1)){
alert("link clicked");
}
);
答案 0 :(得分:1)
我想出了这个解决方案,虽然很hacky,但是可以自己动手做。
技巧是使用此jQuery
插件创建自己的上下文菜单:
https://rawgit.com/swisnl/jQuery-contextMenu/master/dist/jquery.contextMenu.js
https://rawgit.com/swisnl/jQuery-contextMenu/master/dist/jquery.contextMenu.css
https://rawgit.com/swisnl/jQuery-contextMenu/master/dist/jquery.ui.position.js
这不会在SO
上执行,我建议在JSFiddle上运行它:JSFiddle
$(function() {
$.contextMenu({
selector: '.context-menu-one',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m);
switch (key) {
case "open_new_window":
console.log($(this));
//var win = window.open($(this)[0].href, '_blank');
window.open($(this)[0].href,'_blank');
//win.focus();
break;
case "cut":
break;
}
},
items: {
"open_new_window": {
name: "Open link in new tab",
icon: "edit"
},
"cut": {
name: "Cut",
icon: "cut"
}
}
});
});
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://rawgit.com/swisnl/jQuery-contextMenu/master/dist/jquery.ui.position.js"></script>
<link href="https://rawgit.com/swisnl/jQuery-contextMenu/master/dist/jquery.contextMenu.css" rel="stylesheet"/>
<script src="https://rawgit.com/swisnl/jQuery-contextMenu/master/dist/jquery.contextMenu.js"></script>
<a class="context-menu-one" href="https://www.google.com">Google</a><br>
<a class="context-menu-one" href="https://www.bing.com">Bing</a><br>
<a class="context-menu-one" href="https://www.yahoo.com">Yahoo</a><br>
<a class="context-menu-one" href="https://www.facebook.com">Facebook</a><br>