我正在用GWT構建一個AJAX Web應用程序,並且我想用右鍵點擊各種東西,就像在桌面應用程序中一樣。但是,右鍵單擊會產生標準的Web上下文菜單,並且void onClick(ClickEvent事件)永遠不會被調用。有沒有人想出瞭如何讓這個工作?謝謝!在GWT中點擊?
在GWT中點擊?
回答
事實證明,您可以通過擴展DeckPanel
來實現。這裏有一個很好的討論,以及一個很好的演示,證明它的工作原理。
http://whatwouldnickdo.com/wordpress/370/gwt-right-click-context-menu/
多數民衆贊成在高效率,並會打嗝複雜的應用程序與大量的屏幕上呈現的對象,因爲你不使用gwt內的核心事件引擎。 – 2012-08-06 15:02:49
雖然有這樣做的方法,我相信GWT團隊有一個關於這個辯論,並決定啓用右鍵單擊一個Web應用程序是一件壞事,因此取得了Concious酒店決定不支持它。爭論的是,右鍵點擊應該繼續按預期工作(調出主瀏覽器的右鍵點擊上下文菜單),並覆蓋這個打破了預期的行爲,這將是不好的做法。雖然我有一些右鍵點擊上下文菜單有用的實例,但我傾向於同意GWT團隊的決定。
我無法反駁更多。我猜想大多數GWT開發人員使用GWT來嘗試更好地模擬桌面體驗。這包括上下文(右)點擊。有許多企業應用程序使用右鍵點擊是有意義的。 – 2009-09-17 21:36:54
我知道你的意思,我很沮喪,一開始就錯過了右鍵點擊,但是在閱讀了GWT團隊的論點之後,我慢慢走了進來。 – 2009-09-18 07:54:10
@Daniel Vaughan:有趣的一點。如果您添加了您提到的GWT討論的鏈接,我會對此進行投票。 – 2009-09-18 12:22:03
很容易,在contextmenuhandler上添加一個監聽器,它將根據用戶右鍵單擊的位置顯示一個小部件。 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();
}
}
最後你將要禁用瀏覽器菜單中這種類型的上下文菜單中的全超載。這應該適用於所有除Opera外的瀏覽器。但老實說,誰使用,這些天NEWAYS^_______^
<body oncontextmenu="return false;">
這就是魔法!你不知道在花哨的JS框架出現之前,我花了多少年才弄清楚了這一點! – 2015-09-23 18:47:51
- 1. GWT:點擊
- 2. Selenium點擊不與GWT
- 3. gwt點擊事件文檔
- 4. 使用Apache點擊GWT
- 5. html body gwt點擊事件
- 6. GWT:點擊/點擊iPad Safari上的太久
- 7. GWT 2.1 CellTable列標題點擊事件
- 8. GWT UiHandler for g:錨點不是射擊
- 9. 按鈕點擊外部小部件 - GWT
- 10. GWT CellTable,點擊時禁用ButtonCell
- 11. 畫布和點擊處理程序(GWT)
- 12. GWT刪除按鈕後點擊它
- 13. GWT DatePicker識別日曆圖標點擊
- 14. GWT:什麼是處理方式點擊GWT FlowPanel
- 15. GWT Highcharts legend.setOption(「useHTML」,true)禁止點擊GWT包裝中的圖例項目
- 16. 差( '點擊' 和.off( '點擊')。在( '點擊'
- 17. GWT CellList ...當項目點擊時,先前點擊的項目失去其風格
- 18. Gwt:如何不着火焦點後點擊事件?
- 19. GWT可點擊鏈接(錨點)沒有href
- 20. 如何防止在點擊外部時關閉GWT對話框
- 21. 使用GWT在甜甜圈Highchart上點擊事件
- 22. 如何將點擊監聽器添加到GWT中的InputElement?
- 23. 從gwt中的代碼發射點擊事件
- 24. 刪除GWT中的鍵盤按鈕點擊
- 25. 在gwt中識別樹的節點
- 26. GWT錨點嗎?
- 27. GWT地圖v3點擊處理程序在InfoWindow中不起作用
- 28. gwt + grail ..優點和缺點
- 29. 在javascript中單擊可點擊
- 30. 長按事件在按鈕上點擊Android在Android中點擊
如果是不阻止默認瀏覽器右鍵菜單中的任何幫助,您可以通過使用替代函數clickhandler MouseDownHandler趕上右鍵單擊。 – pistolPanties 2011-09-13 14:55:03