Estoy construyendo una aplicación web AJAX con GWT, y quiero usar el botón derecho para varias cosas, al igual que en una aplicación de escritorio. Sin embargo, al hacer clic con el botón derecho se produce el menú contextual de la Web estándar y nunca se llama a la función onClick (evento ClickEvent). ¿Alguien ha descubierto cómo hacer que esto funcione? ¡Gracias!Haz clic derecho en GWT?
Respuesta
Resulta que puede hacerlo extendiendo DeckPanel
. Aquí hay una discusión excelente, junto con una buena demostración que demuestra que funciona.
http://whatwouldnickdo.com/wordpress/370/gwt-right-click-context-menu/
eso es eficaz y causará problemas en aplicaciones complejas con muchos objetos representados en la pantalla ya que no está utilizando el motor de eventos centrales dentro de gwt. –
Aunque hay maneras de hacerlo creo que el equipo de GWT tuvo un debate acerca de esto y decidió que permite el botón derecho en una aplicación web era algo malo y así tomó la decisión consciente de no apoyarlo. El argumento era que el clic derecho debería seguir funcionando como se esperaba (mostrar el menú contextual del botón derecho del navegador del servidor) y anular esto estaba rompiendo ese comportamiento esperado y eso sería una mala práctica. Si bien he tenido instancias en las que un menú contextual con el botón derecho sería útil, generalmente tiendo a estar de acuerdo con la decisión del equipo de GWT.
No podría estar más en desacuerdo. Supongo que la mayoría de los desarrolladores de GWT usan GWT en un intento de emular mejor la experiencia de escritorio. Y eso incluye clics contextuales (derechos). Existen muchas aplicaciones empresariales en las que tiene sentido utilizar los clics con el botón derecho. –
Sé a lo que se refiere, me sentí bastante frustrado porque al principio me faltaba el clic derecho, pero después de leer el argumento del equipo de GWT, lentamente me di la vuelta. –
@Daniel Vaughan: punto interesante. Yo votaría esto si agregaras un enlace a la discusión de GWT que mencionas. –
easy peasy, agregue un detector en el manejador de contexto que mostrará un widget en función del lugar donde el usuario haga clic con el botón derecho. https://confluence.clazzes.org/pages/viewpage.action?pageId=425996
class MyWidget extends Composite implements ContextMenuHandler {
// just an example, use a meaningful Widget here...
private Widget base;
private PopupPanel contextMenu;
public MyWidget() {
// initialize base widget, etc...
this.contextMenu = new PopupPanel(true);
this.contextMenu.add(new HTML("My Context menu!"));
this.contextMenu.hide();
initWidget(this.base);
// of course it would be better if base would implement HasContextMenuHandlers, but the effect is the same
addDomHandler(this, ContextMenuEvent.getType());
}
public void onContextMenu(ContextMenuEvent event) {
// stop the browser from opening the context menu
event.preventDefault();
event.stopPropagation();
this.contextMenu.setPopupPosition(event.getNativeEvent().getClientX(), event.getNativeEvent().getClientY());
this.contextMenu.show();
}
}
por último tendrá que desactivar el menú completo para navegadores sobrecarga de este tipo de menú contextual. Eso debería funcionar en todos los navegadores excepto Opera. pero la verdad es que se utiliza en estos días que Neways^_______^
<body oncontextmenu="return false;">
Recibe un voto favorable para
. ¡Esa parte me estaba volviendo loco! – Jamie¡Esa es la magia! ¡No tienes idea de cuántos años tardé en darme cuenta de eso antes de que existieran los sofisticados frameworks JS! –
- 1. Haz clic derecho en contextMenu en QPushButton
- 2. wpf listview haz clic derecho en el problema
- 3. autohotkey ctrl + clic = clic derecho
- 4. Haga clic derecho en JButton
- 5. Haga clic derecho en JavaFX?
- 6. org.eclipse.swt.widgets.Button haz clic en el código
- 7. JavaScript: Haz clic en el elemento
- 8. Visual C# Haz clic con el botón secundario del botón
- 9. ¿Cómo hacer clic derecho en Vimperator?
- 10. Clic derecho en Python usando ctypes
- 11. ¿Existe un doble clic derecho en Win32?
- 12. Cómo tocar el botón Haz clic en Eventos en jQuery?
- 13. WPF. Captura la última ventana, haz clic en cualquier lugar
- 14. Haz clic en una imagen, consigue las coordenadas
- 15. Ejecuta la función php dentro de jQuery haz clic en
- 16. WPF stop ListView ScrollBar encendido haz clic en
- 17. ¿Atajo de teclado "clic derecho" para Eclipse?
- 18. Disparador clic con el botón derecho
- 19. Menú de clic derecho debajo de winforms
- 20. ¿cómo puedes hacer clic derecho usando selenio?
- 21. IE bug triggers haz clic para 2 botones?
- 22. Cómo deshabilitar el clic derecho en un hipervínculo en html
- 23. Menú de clic derecho en la aplicación de consola
- 24. Cómo desactivar el "clic derecho" en WPF Webbrowser Control?
- 25. conseguir texto del hipervínculo en Chrome, haga clic derecho
- 26. Desactivar hacer clic derecho en las imágenes usando jquery
- 27. Clic derecho súbitamente insoportablemente lento en VS 2010
- 28. Haga clic derecho en el menú contextual para Java JTree?
- 29. ¿Cómo puedo capturar el evento de clic derecho en JavaScript?
- 30. haga clic derecho en el menú contextual jquery
si se trata de ningún tipo de ayuda sin impedir navegador por defecto menú del botón derecho, se puede tomar un clic derecho mediante el uso de mouseDownHandler en lugar de clickHandler. – pistolPanties