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


Posted in Javascript onSeptember 03, 2014

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

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

Javascript 相关文章推荐
js资料prototype 属性
Mar 13 Javascript
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
Aug 15 Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
详解AngularJS中的依赖注入机制
Jun 17 Javascript
1秒50万字!js实现关键词匹配
Aug 01 Javascript
AngularJS 指令的交互详解及实例代码
Sep 14 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
Oct 09 Javascript
利用vue-router实现二级菜单内容转换
Nov 30 Javascript
基于js 本地存储(详解)
Aug 16 Javascript
小程序云开发实战小结
Oct 25 Javascript
javascript实现浏览器窗口传递参数的方法
Sep 03 #Javascript
javascript模拟post提交隐藏地址栏的参数
Sep 03 #Javascript
javascript刷新父页面的各种方法汇总
Sep 03 #Javascript
判断在css加载完毕后执行后续代码示例
Sep 03 #Javascript
jQuery实现倒计时按钮功能代码分享
Sep 03 #Javascript
jQuery自带的一些常用方法总结
Sep 03 #Javascript
JavaScript实现从数组中选出和等于固定值的n个数
Sep 03 #Javascript
You might like
php使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
JS自动适应的图片弹窗实例
2013/06/29 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
VUE项目初建和常见问题总结
2019/09/12 Javascript
vue指令v-html使用过滤器filters功能实例
2019/10/25 Javascript
JS实现分页导航效果
2020/02/19 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
详细解析Python中的变量的数据类型
2015/05/13 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
python Pandas库基础分析之时间序列的处理详解
2019/07/13 Python
Python关于反射的实例代码分享
2020/02/20 Python
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
Java程序员面试90题
2013/10/19 面试题
毕业生优秀推荐信
2013/11/26 职场文书
淘宝客服自我总结鉴定
2014/01/25 职场文书
《晏子使楚》教学反思
2014/02/08 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
英文感谢信范文
2015/01/21 职场文书
仙境之桥观后感
2015/06/16 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
关于nginx 实现jira反向代理的问题
2021/09/25 Servers
nginx lua 操作 mysql
2022/05/15 Servers
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers