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

作者:whsnow 时间:2024-05-02 16:28:15 

昨天修改机顶盒上面的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()

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

标签:focus,焦点
0
投稿

猜你喜欢

  • 浅析Python数字类型和字符串类型的内置方法

    2022-06-16 12:57:24
  • pandas读取csv文件提示不存在的解决方法及原因分析

    2022-10-27 19:08:02
  • 客户端限制只能上传jpg格式图片的js代码

    2023-07-16 00:56:04
  • vue-admin-element项目突然就起不来了的解决

    2023-07-02 16:37:58
  • JavaScript生成二维码图片小结

    2024-05-02 16:13:16
  • Django csrf校验的实现

    2023-10-01 14:49:40
  • 详解Python requests模块

    2021-12-31 21:55:12
  • python 实现图片裁剪小工具

    2022-04-27 18:15:15
  • 使用ASP订制自己的XML文件读写方法

    2008-10-24 09:35:00
  • Vue mockjs编写假数据并请求获取实现流程

    2024-04-28 09:27:22
  • 【JS+CSS3】实现带预览图幻灯片效果的示例代码

    2024-04-10 13:55:15
  • 使用WingPro 7 设置Python路径的方法

    2022-05-23 03:59:56
  • C#连接Oracle数据库的方法

    2024-01-16 20:17:12
  • Python中.py程序在CMD控制台以指定虚拟环境运行

    2021-08-31 14:49:55
  • 关于MySQL自增ID的一些小问题总结

    2024-01-22 18:52:56
  • php中mysql连接方式PDO使用详解

    2023-11-06 02:46:43
  • Can't connect to MySQL server on 'localhost' (10048)问题解决方法

    2024-01-19 06:58:47
  • Pandas中把dataframe转成array的方法

    2023-07-05 11:44:34
  • MySQL数据库命令

    2024-01-17 09:27:22
  • 微信小程序实现图片上传、删除和预览功能的方法

    2023-09-20 08:54:30
  • asp之家 网络编程 m.aspxhome.com