我正在开发一个使用相当先进的小程序的网站,该小程序将鼠标和键盘绑定到它,因此在您按 esc 键之前不会影响浏览器。返回网站。一切都工作正常,但是:
如果我按 Shift + 右键单击,它将弹出浏览器的上下文菜单,有什么方法可以阻止它吗?正常的右键单击被禁用就好了,其他浏览器也可以正常工作,只是 Firefox 搞乱了 shift+rmb。
我在谷歌上花了几个小时,甚至还没有找到这个功能到底是什么(我猜它是一个额外的可用性功能,对于那些讨厌的网站禁用右键单击,但在这种情况下,它只是妨碍)
我正在开发一款 RTS 游戏,您可以在其中选择单位并右键单击以让它们移动到某个地方。您还可以通过右键单击来排列您希望单位前往的点列表。
在除 FF 之外的所有浏览器中,这都运行良好。
然而,在 Firefox 中,右键单击会触发上下文菜单(右键单击而不使用 shift 不会)。我正在处理 contextmenu 事件并调用 preventDefault 但当按住 shift 按钮时,这在 FF 中似乎没有任何作用。
有什么办法可以阻止 FF 中的这种行为?
我的游戏在这里:https : //mod.it/4plhXo3l 和第 36 行 RTSBoard.js 文件中的相关代码。
使用 Selenium 2.0 WebDriver (java),我需要测试一些导航(旋转、平移...)
我需要能够在移动鼠标的同时按住右键。
同样,我需要能够在移动鼠标的同时按住 MIDDLE 按钮。
似乎只能使用 LEFT 按钮。
Actions actions = new Actions(driver);
actions.clickAndHold().perform();
Run Code Online (Sandbox Code Playgroud)
下面的问题,我不是在处理任何菜单、按钮、小部件,而是处理像 GoogleMap 这样的 3D 环境,我需要在其中使用 MIDDLE 按钮、RIGHT 按钮甚至鼠标滚轮来模拟平移、旋转和缩放...
任何帮助?
我一直在尝试对我的标记进行右键单击,但到目前为止,似乎该事件并未触发。作为一种解决方法,我目前正在检测地图上的右键单击,然后找到最近的标记并触发右键单击方法 - 显然那不是很好。
根据文档,标记确实有一个右键单击事件,所以我不确定我做错了什么。https://developers.google.com/maps/documentation/javascript/reference#Marker
google.maps.event.addListener(marker, 'rightclick', handleRightClick)
Run Code Online (Sandbox Code Playgroud)
不起作用但是
google.maps.event.addListener(map, 'rightclick', handleRightClick)
Run Code Online (Sandbox Code Playgroud)
工作正常。就像:
google.maps.event.addListener(marker, 'click', handleRightClick)
Run Code Online (Sandbox Code Playgroud)
我还使用了一个名为 markerWithLabel 的自定义标记插件 - http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.9/docs/reference.html - 我以为我'当我发现这并没有为右键单击添加事件侦听器时,我破解了它,但是即使我在自己中添加了一个事件侦听器,仍然没有运气。我在第 257 行添加了这个:
google.maps.event.addDomListener(this.eventDiv_, "rightclick", function(e) {
if (me.marker_.getClickable()) {
google.maps.event.trigger(me.marker_, "rightclick", e);
cAbortEvent(e);
}
})
Run Code Online (Sandbox Code Playgroud)
有没有人遇到过类似的问题或找到更好的解决方法?
提前致谢。
右键菜单正确使用其功能.但问题是有时它不能正常工作.在我的视图中,如果右键单击表格行正确选中了复选框,但在取消选中后再次尝试检查并右键单击它不起作用.
$('.check').bind("contextmenu", function (event) {
event.preventDefault();
$(".custom-menu").finish().toggle(100).css({
top: event.pageY + "px",
left: event.pageX + "px"
});
});
$(document).bind("mousedown", function (e) {
if (!$(e.target).parents(".custom-menu").length > 0) {
$(".custom-menu").hide(100);
}
});
$('tr.check').contextmenu(function (e) {
$cb = $(this).find('input[type="checkbox"].selected_check');
$($cb).attr('checked', 'checked');
populate_context_menu($cb);
return false;
});
Run Code Online (Sandbox Code Playgroud) 我下载了一个文件,想验证它的 MD5 校验和。7Zip 的文件上下文菜单输出不包含 MD5 校验和,因此我从 Windows 站点下载了 fciv.exe,并将其复制到我的 System32 文件夹中。
然后我尝试添加自定义上下文菜单项。我已经看到我可以修改 Computer\HKEY_CLASSES_ROOT*\shell 中的注册表,并添加一个 MD5 键,在它下面有一个命令键cmd /k fciv.exe "%1"作为解决方案执行。
但是,我想更进一步,使用 VB 脚本将输出发送到一个简单的消息框,而不是打开控制台。我在这里找到的代码如下:
Option Explicit
Const WshRunning = 0
Const WshFinished = 1
Const WshFailed = 2
Dim shell : Set shell = CreateObject("WScript.Shell")
Dim exec : Set exec = shell.Exec("fciv.exe filename-from-right-click")
While exec.Status = WshRunning
WScript.Sleep 50
Wend
Dim output
If exec.Status = WshFailed Then
output = exec.StdErr.ReadAll
Else
output = exec.StdOut.ReadAll
End If
WScript.Echo output …Run Code Online (Sandbox Code Playgroud) 我发现这个例子在 Svelte 中创建了一个右键菜单,效果很好。它使用 svelte:body 绑定到整个文档正文。
我想要的是仅在特定组件的上下文中的右键单击菜单,例如步骤列表,使用菜单我可以执行诸如“标记之前列表中的所有项目”或“标记当前之后的所有项目”之类的操作步为红色”。
点击事件不响应鼠标右键单击.该事件适用于richTextBox.当我在表单上尝试相同的代码时,它工作正常.
可能是什么问题呢?
编辑:我使用winforms
我对WPF中的"ContextMenu"有疑问.有没有办法只在执行"Shift-Right-Click"时弹出上下文菜单?我一直在寻找这个地方.在进行"右键单击"时,ContextMenu似乎只能弹出.
有人有主意吗 ??
我设置了一个JPopupMenu,它将显示用户是否右键单击JList中的单元格,但是现在必须首先选择该单元格才能显示JPopupMenu.我想知道如何在右键单击时选择该单元格,然后像现在一样显示JPopupMenu.当没有选择任何项目且鼠标未超出列表中的任何项目时,我也会显示一个菜单.
码:
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ActionMap;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.DropMode;
import javax.swing.JList;
import javax.swing.JPopupMenu;
import javax.swing.ListSelectionModel;
import javax.swing.TransferHandler;
public class CardZone extends JList implements MouseListener{
private static final long serialVersionUID = 1L;
private DefaultListModel model;
private TransferHandler handler;
private JPopupMenu popupMenu = null;
private Planeswalker owner;
private String name;
private CardImageCellRenderer cellRenderer;
public CardZone(Planeswalker owner, String name) {
this.owner = owner;
this.name = name;
cellRenderer = new CardImageCellRenderer(150); …Run Code Online (Sandbox Code Playgroud)