GWT 焦点元素与 Javascript 焦点



我试图了解从Vaadin组件调用的focus((方法(指向元素上的GWT focus((方法(和在浏览器中执行的javascript之间的区别,后者使用简单的focus方法将焦点设置为元素。

长城:

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

Javascript:

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

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

我认为GWTfocus()和Javascript元素focus()之间没有任何真正的区别,因为它们在引擎盖下调用相同的方法。

在下面的片段中,我在单击按钮时调用了 Javascriptfocus()。当<a>务实地聚焦时,它会获得正确的:focusCSS 样式。

function doFocus() {
document.getElementById("testAnchor").focus();
}
function doBlur() {
document.getElementById("testAnchor").blur();
}
a:focus, a:active {
color: red;
}
<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">

最新更新