我正在为带有边框输入的手表开发Tizen Webapp。要在HTML文档上侦听Bezel旋转事件,我使用了以下代码:
rotaryDetentCallback = function rotaryDetentHandler(e) {
var direction = e.detail.direction;
if (direction === "CW") {
alert("<-");
} else if (direction === "CCW") {
alert("->");
}
};
document.addEventListener("rotarydetent", rotaryDetentCallback, false);
console.log(document.hasFocus());//returns true
$('select').on('change', function(){
console.log(document.hasFocus()); //Prints false
document.activeElement.blur(); //doesnt work
window.focus(); //doesnt work
document.focus(); //retuns error
});
rotarydetent
监听器工作得很好,但在我在运行时更改App中的任何Select元素后,文档失去焦点并且事件不再触发。
如何在选择更改后将焦点重新放回document
对象?
PS:Tizen可穿戴式网络应用上的选择标签的标准用户界面也使用了边框,所以我想它需要来自文档的eventListener并且不会回复它。
没有这样的功能document.focus()
和window.focus()
用于恢复焦点to the current window(显然,如果你有多个打开),而不是将它带回页面的内容。
尝试聚焦document.body
或其可聚焦的祖先 - 一个是表单字段,或链接或具有适当的tabIndex
属性。