我知道我可以使用jQuery的“contextmenu“来捕获右键单击事件,但我的问题是,在上下文菜单出现后(即,当用户单击“在新选项卡中打开链接”操作时),我如何捕获事件。有什么需要帮忙的吗?谢谢.
的数据
rur96b6h1#
遗憾的是,通过JavaScript直接捕获在选择“在新标签页中打开链接”时由浏览器上下文菜单触发的事件并不可行。上下文菜单及其操作(包括“在新标签页中打开链接”)沿着是浏览器用户界面的组成部分,出于安全考虑,通过标准Web API仍然无法访问和控制上下文菜单。浏览器旨在防止网页篡改或捕获敏感的用户交互,如在新标签中打开链接。这种故意设计旨在保护用户免受潜在的恶意活动。如果您的目标是在新选项卡中打开链接时执行特定操作,则可能需要探索其他方法。例如,向链接添加自定义单击处理程序可以帮助捕获单击事件,但它不会提供有关用户是否选择在上下文菜单中的新选项卡中打开链接的信息。请务必记住,在未经用户明确同意的情况下,试图操纵或干扰浏览器级别的交互可能会导致用户体验欠佳,并可能被视为侵入。尊重用户隐私并遵守浏览器安全功能至关重要。
js4nwp542#
我找到了这个解决办法
<script type='text/javascript'>jQuery(function($){ $('a').mousedown(function(event) { switch (event.which) { case 1: //alert('Left mouse button pressed'); $(this).attr('target','_self'); break; case 2: //alert('Middle mouse button pressed'); $(this).attr('target','_blank'); break; case 3: //alert('Right mouse button pressed'); $(this).attr('target','_blank'); break; default: //alert('You have a strange mouse'); $(this).attr('target','_self"'); } });});
<script type='text/javascript'>
jQuery(function($){
$('a').mousedown(function(event) {
switch (event.which) {
case 1:
//alert('Left mouse button pressed');
$(this).attr('target','_self');
break;
case 2:
//alert('Middle mouse button pressed');
$(this).attr('target','_blank');
case 3:
//alert('Right mouse button pressed');
default:
//alert('You have a strange mouse');
$(this).attr('target','_self"');
}
});
字符串这里jQuery: Detect Mouse Click and Open Target in New Tab
2条答案
按热度按时间rur96b6h1#
遗憾的是,通过JavaScript直接捕获在选择“在新标签页中打开链接”时由浏览器上下文菜单触发的事件并不可行。上下文菜单及其操作(包括“在新标签页中打开链接”)沿着是浏览器用户界面的组成部分,出于安全考虑,通过标准Web API仍然无法访问和控制上下文菜单。
浏览器旨在防止网页篡改或捕获敏感的用户交互,如在新标签中打开链接。这种故意设计旨在保护用户免受潜在的恶意活动。
如果您的目标是在新选项卡中打开链接时执行特定操作,则可能需要探索其他方法。例如,向链接添加自定义单击处理程序可以帮助捕获单击事件,但它不会提供有关用户是否选择在上下文菜单中的新选项卡中打开链接的信息。
请务必记住,在未经用户明确同意的情况下,试图操纵或干扰浏览器级别的交互可能会导致用户体验欠佳,并可能被视为侵入。尊重用户隐私并遵守浏览器安全功能至关重要。
js4nwp542#
我找到了这个解决办法
字符串
这里jQuery: Detect Mouse Click and Open Target in New Tab