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 相关文章推荐
javascript 操作cookies及正确使用cookies的属性
Oct 15 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
Oct 31 Javascript
javascript设计模式 接口介绍
Jul 24 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
Jan 04 Javascript
js 一个关于图片onload加载的事
Nov 10 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
javascript实现checkbox全选的代码
Apr 30 Javascript
针对初学者的jQuery入门指南
Aug 15 Javascript
原生JavaScript制作计算器
Oct 16 Javascript
jQuery Masonry瀑布流布局神器使用详解
May 25 jQuery
详解vue 不同环境配置不同的打包命令
Apr 07 Javascript
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
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执行批量mysql语句的解决方法
2013/05/02 PHP
php调用c接口无错版介绍
2014/03/11 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
JavaScript SetInterval与setTimeout使用方法详解
2013/11/15 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
深入了解js原型模式
2019/05/30 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
python可视化实现KNN算法
2019/10/16 Python
在matplotlib中改变figure的布局和大小实例
2020/04/23 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
小学生获奖感言范文
2014/02/02 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
销售员岗位职责
2014/06/09 职场文书
大学生年度个人总结
2015/02/15 职场文书
新闻稿格式范文
2015/07/18 职场文书
Python实现制作销售数据可视化看板详解
2021/11/27 Python