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脚本实现Web页面信息交互
Dec 21 Javascript
javascript 解析url的search方法
Feb 09 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
May 24 Javascript
DLL+ ActiveX控件+WEB页面调用例子
Aug 07 Javascript
实现前后端数据交互方法汇总
Apr 07 Javascript
jQuery 3 中的新增功能汇总介绍
Jun 12 Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
Nov 25 Javascript
BootStrap表单时间选择器详解
May 09 Javascript
Angularjs实现上传图片预览功能
Sep 01 Javascript
基于Two.js实现星球环绕动画效果的示例
Nov 06 Javascript
详解JS取出两个数组中的不同或相同元素
Mar 20 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
php5.3 注意事项说明
2013/07/01 PHP
php随机显示图片的简单示例
2014/02/15 PHP
XML的代替者----JSON
2007/07/21 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
AngularJS快速入门
2015/04/02 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
python交互式图形编程实例(三)
2017/11/17 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
Python多进程fork()函数详解
2019/02/22 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
医学生就业推荐表自我鉴定
2014/03/26 职场文书
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
学校2014年度工作总结
2014/12/06 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
mysql函数全面总结
2021/11/11 MySQL
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL