国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript使用focus()設置焦點失敗的解決方法

2019-11-20 14:11:41
字體:
來源:轉載
供稿:網友

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

然后就解決了這個問題。不得不感概!在解決這個問題的過程中,自己的思路其實還是蠻正確的,但知識面顯然不夠。一般程序員和高級程序員的差距除了解決問題的思路方面,也有經驗和知識面的差距!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丽江市| 泰宁县| 济宁市| 常熟市| 喀什市| 岑巩县| 紫金县| 鹤壁市| 枝江市| 前郭尔| 华池县| 哈密市| 双辽市| 七台河市| 汉寿县| 新田县| 阳城县| 石河子市| 滦南县| 景谷| 新源县| 仪陇县| 张家港市| 泰宁县| 许昌县| 丹东市| 崇义县| 永胜县| 灵山县| 视频| 闸北区| 克山县| 城固县| 名山县| 东乡县| 平潭县| 古丈县| 浏阳市| 涞水县| 寿宁县| 汝州市|