如何设置Focus来为eventListener提供web应用程序文档对象? (JavaScript)的

问题描述 投票:2回答:1

我正在为带有边框输入的手表开发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并且不会回复它。

javascript document tizen-web-app tizen-wearable-sdk
1个回答
0
投票

没有这样的功能document.focus()window.focus()用于恢复焦点to the current window(显然,如果你有多个打开),而不是将它带回页面的内容。

尝试聚焦document.body或其可聚焦的祖先 - 一个是表单字段,或链接或具有适当的tabIndex属性。

© www.soinside.com 2019 - 2024. All rights reserved.