我想知道,在GWT中,哪個元素當前有重點。基本上我在我們的應用程序中使用虛擬鍵盤。所有的鍵都可以正常工作,除了Tab鍵。如果我得到專注的元素,那麼我可以制定出標籤密鑰代碼。如何找出哪個GWT元素具有焦點?
在JavaScript和jQuery中,我們可以使用document.activeElement
得到這個。希望有些機構會讓我以正確的方式來實現這一目標。
幫助,將不勝感激。
我想知道,在GWT中,哪個元素當前有重點。基本上我在我們的應用程序中使用虛擬鍵盤。所有的鍵都可以正常工作,除了Tab鍵。如果我得到專注的元素,那麼我可以制定出標籤密鑰代碼。如何找出哪個GWT元素具有焦點?
在JavaScript和jQuery中,我們可以使用document.activeElement
得到這個。希望有些機構會讓我以正確的方式來實現這一目標。
幫助,將不勝感激。
document.activeElement
在所有瀏覽器中都不起作用,所以GWT中不支持它。你也許可以使用焦點&模糊處理程序來跟蹤哪個元素具有它。
在「所有瀏覽器」中不受支持的事實僅在您的應用針對所有瀏覽器時才重要。 activeElement目前支持不少瀏覽器Why is there no isFocused() in GWT?。
我需要類似的東西,我需要從小部件內部知道它是否有焦點。我做了以下
protected native boolean hasFocus(Element element) /*-{
return element.ownerDocument.activeElement == element;
}-*/;
我需要在當前的元素傳遞給獲得正確的文件,只是打電話
document.activeElement;
沒有給我我所需要的文檔。你可能會做同樣的事情,但傳入一個不同的元素(RootPanel元素也許?),並返回焦點元素,而不是一個布爾。
protected native Element elementInFocus(Element element) /*-{
return element.ownerDocument.activeElement;
}-*/;
您應該在JSNI中使用「$ doc」而不是「document」。 $ wnd代替「window」也一樣。 –
短模板:
public class IntBox extends com.google.gwt.user.client.ui.IntegerBox {
private boolean focused=false;
public IntBox(){
addFocusHandler(new FocusHandler() {
@Override
public void onFocus(FocusEvent event) {
focused=true;
}
});
addBlurHandler(new BlurHandler() {
@Override
public void onBlur(BlurEvent event) {
focused=false;
}
});
}
public boolean isFocused() {
return focused;
}
}
我們現在可以使用元素庫來實現這一目標。
http://www.gwtproject.org/articles/elemental.html
的確切功能將
elemental.client.Browser.getDocument().getActiveElement()
ok.Thanks您reply.If您有任何樣品,你可以分享focushandlers得到有源元件? – Unknown
不幸的是不是 – milan
哦,但如果你找到任何解決方案,請與我們分享。我們也將嘗試一個最大限度地找出解決方案在更短的時間:-)。感謝您的指導。 – Unknown