GWT焦点元素与Javascript焦点

时间:2017-08-24 17:45:41

标签: javascript gwt vaadin

我试图理解从Vaadin组件调用的focus()方法(它指向元素上的GWT focus()方法)和浏览器中执行的javascript之间的区别是什么,它使用简单的焦点方法将焦点设置为元素。 / p>

GWT:

/**
* Gives keyboard focus to this element.
*/
public final native void focus() /*-{
   this.focus();
}-*/;

使用Javascript:

document.getElementById('elementId').focus();

当我使用GWT设置焦点时,元素的行为类似于通过键盘获得焦点(它获得额外的:焦点css类)。使用javascript时不会添加此样式。真正的区别在哪里?

1 个答案:

答案 0 :(得分:0)

我不认为GWT focus()和Javascript元素focus()之间存在任何真正的差异,因为他们在引擎盖下调用相同的方法。

在下面的代码段中,我在按钮点击时调用了Javascript focus()<a>在实用焦点时获得正确的:focus CSS样式。

&#13;
&#13;
function doFocus() {
    document.getElementById("testAnchor").focus();
}

function doBlur() {
    document.getElementById("testAnchor").blur();
}
&#13;
a:focus, a:active {
    color: red;
}
&#13;
<a id="testAnchor" href="#">This is a test link</a>

<p>Click the buttons to focus or blur the above test link.</p>
<p>The link should turn red when it is focused.</p>

<input type="button" onclick="doFocus()" value="Focus">
<input type="button" onclick="doBlur()" value="Blur">
&#13;
&#13;
&#13;