javascript javascript-events dojo cross-browser right-click

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.