当前位置: 首页 > 编程笔记 >

JavaScript使用focus()设置焦点失败的解决方法

岳奇逸
2023-03-14
本文向大家介绍JavaScript使用focus()设置焦点失败的解决方法,包括了JavaScript使用focus()设置焦点失败的解决方法的使用技巧和注意事项,需要的朋友参考一下

昨天修改机顶盒上面的EPG页面,遇到一个小问题。用户购买游戏时需要弹出购买确认对话框,对话框的默认焦点规定必须停留在“取消”按键上。很简单的需求,使用JavaScript的focus()方法就可以实现了。简单的代码示例如下:

document.getElementById("cancel").focus()

但是苦逼的是,机顶盒真是一个大坑。由于要兼容所有现存的机顶盒型号,需要对8款机顶盒进行适配。然后就出现问题了!一款中兴B600的机顶盒完全没法将焦点设置到取消按键上。以下是我的解决思路:

首先确认该机顶盒是否支持getElementById()方法以及是否成功获得了ID为“cancel”的元素:测试方法很简单,直接另写了一个 <p id="test">test</p> ,然后在同样的地方获取ID为“test”的元素,并进行了简单的操作document.getElementById("test").innerHTML="Hello"
最后使用了“try...catch(e)...”捕捉“focus()”失败的原因

try(){ 
<span style="white-space:pre"> </span>document.getElementById("cancel").focus() 
}catch(e){ 
<span style="white-space:pre"> </span>alert(e.name + ": " + e.what()); 
}

但是就是很奇怪!以上两步的结果表明该机顶盒支持focus()和getElementById(),但是就是无法设置焦点到弹出的对话框中。

前前后后折腾了一个多小时,最后大BOSS出现了,就简单说了一句话就解决了这个问题!有可能要主动调用flur()将原来的焦点取消掉!

document.getElementById("purchase").flur()

然后就解决了这个问题。不得不感概!在解决这个问题的过程中,自己的思路其实还是蛮正确的,但知识面显然不够。一般程序员和高级程序员的差距除了解决问题的思路方面,也有经验和知识面的差距!

 类似资料:
  • 定义 焦点图组件。 图片展示 代码演示 import Focus from 'pile/dist/components/focus' <Focus className="focus-demo" index = {0} width = {"375px"} loop = {true} timer = {5000} direction = "left" duration = {

  • 本文向大家介绍Android bindservice失败解决方法,包括了Android bindservice失败解决方法的使用技巧和注意事项,需要的朋友参考一下 Android bindservice失败解决方法 现象: 相同的代码以前使用一直很正常,但最近在项目中使用却一直绑定失败,bindservice返回false。 原因: 使用了TabActivity, TabActivity里的子Ac

  • 本文向大家介绍svn 清理失败 (cleanup 失败) 的快速解决方法,包括了svn 清理失败 (cleanup 失败) 的快速解决方法的使用技巧和注意事项,需要的朋友参考一下 1、cmd指令,进入.svn目录,找到wc.db文件 sqlite 3 打开 2、 对 svn源代码目录 右键, clean up, 稍等1至5分钟左右,然后会提示 清理成功 以上就是小编为大家带来的svn 清理失败 (

  • 当用户点击某个元素或使用键盘上的 Tab 键选中时,该元素将会获得聚焦(focus)。还有一个 HTML 特性(attribute)autofocus 可以让焦点在网页加载时默认落在一个元素上,此外还有其它途径可以获得焦点。 聚焦到一个元素通常意味着:“准备在此处接受数据”,所以,这正是我们可以运行代码以初始化所需功能的时刻。 失去焦点的时刻(“blur”)可能更为重要。它可能发生在用户点击页面的

  • 本文向大家介绍MFC设置对话框焦点的方法简述,包括了MFC设置对话框焦点的方法简述的使用技巧和注意事项,需要的朋友参考一下 本文简单讲述了MFC设置对话框焦点的方法,分享给大家供大家参考。具体实现方法如下: 具体的方法有两种: 1. 设置对话框控件的tab order。 按Ctrl+D即可看见。将需要被设置到焦点的空间的tab order设为1. 2. 对话框的OnInitDialog返回FALS

  • 我回到我的android项目来完成它,突然我得到这个错误信息说 “无法解析受Androidx影响的模块: "错误:无法解决:androidx。受影响的模块:应用程序" 这是我的身材。渐变文件