javascript - Cómo generar un evento de clic derecho en todos los navegadores
javascript-events dojo (1)
Esto debería comenzar a generar un evento de clic derecho. La clave del clic derecho es el parámetro del botón: button = 2.
if (document.createEvent) {
var rightClick = document.createEvent(''MouseEvents'');
rightClick.initMouseEvent(
''click'', // type
true, // canBubble
true, // cancelable
window, // view - set to the window object
1, // detail - # of mouse clicks
10, // screenX - the page X coordinate
10, // screenY - the page Y coordinate
10, // clientX - the window X coordinate
10, // clientY - the window Y coordinate
false, // ctrlKey
false, // altKey
false, // shiftKey
false, // metaKey
2, // button - 1 = left, 2 = right
null // relatedTarget
);
document.dispatchEvent(rightClick);
} else if (document.createEventObject) { // for IE
var rightClick = document.createEventObject();
rightClick.type = ''click'';
rightClick.cancelBubble = true;
rightClick.detail = 1;
rightClick.screenX = 10;
rightClick.screenY = 10;
rightClick.clientX = 10;
rightClick.clientY = 10;
rightClick.ctrlKey = false;
rightClick.altKey = false;
rightClick.shiftKey = false;
rightClick.metaKey = false;
rightClick.button = 2;
document.fireEvent(''onclick'', rightClick);
}
Sugeriría Googleing para ''document.createEvent'' y ''document.createEventObject'' para más detalles sobre la API de los sitios de Mozilla y MSDN.
¡Espero que esto ayude!
Un pequeño contexto:
La aplicación en la que estoy trabajando tiene un menú contextual con el botón derecho del ratón para ciertos objetos en la pantalla. El diseño actual es que cada uno de estos objetos escucha un clic derecho, envía una solicitud AJAX para obtener los datos de contexto para ese objeto, usa esa información para crear un PopupMenu2 de Dojo 0.4.3 (¡Lo sé!) Y luego genera un clic derecho para abrir el menú de Dojo.
Estoy tratando de encontrar una manera de generar un evento de clic derecho para todos los navegadores. Actualmente, solo admitimos IE y usamos el evento oncontextmenu.
Restricciones
- No jQuery :(
- No puedo precargar todos los datos de los objetos en la pantalla para crear el menú de Dojo y evitar la solicitud de AJAX.