JavaScript使用focus()設(shè)置焦點(diǎn)失敗的解決方法
昨天修改機(jī)頂盒上面的EPG頁(yè)面,遇到一個(gè)小問(wèn)題。用戶購(gòu)買游戲時(shí)需要彈出購(gòu)買確認(rèn)對(duì)話框,對(duì)話框的默認(rèn)焦點(diǎn)規(guī)定必須停留在“取消”按鍵上。很簡(jiǎn)單的需求,使用JavaScript的focus()方法就可以實(shí)現(xiàn)了。簡(jiǎn)單的代碼示例如下:
document.getElementById("cancel").focus()
但是苦逼的是,機(jī)頂盒真是一個(gè)大坑。由于要兼容所有現(xiàn)存的機(jī)頂盒型號(hào),需要對(duì)8款機(jī)頂盒進(jìn)行適配。然后就出現(xiàn)問(wèn)題了!一款中興B600的機(jī)頂盒完全沒(méi)法將焦點(diǎn)設(shè)置到取消按鍵上。以下是我的解決思路:
首先確認(rèn)該機(jī)頂盒是否支持getElementById()方法以及是否成功獲得了ID為“cancel”的元素:測(cè)試方法很簡(jiǎn)單,直接另寫了一個(gè) <p id="test">test</p> ,然后在同樣的地方獲取ID為“test”的元素,并進(jìn)行了簡(jiǎn)單的操作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()); }
但是就是很奇怪!以上兩步的結(jié)果表明該機(jī)頂盒支持focus()和getElementById(),但是就是無(wú)法設(shè)置焦點(diǎn)到彈出的對(duì)話框中。
前前后后折騰了一個(gè)多小時(shí),最后大BOSS出現(xiàn)了,就簡(jiǎn)單說(shuō)了一句話就解決了這個(gè)問(wèn)題!有可能要主動(dòng)調(diào)用flur()將原來(lái)的焦點(diǎn)取消掉!
document.getElementById("purchase").flur()
然后就解決了這個(gè)問(wèn)題。不得不感概!在解決這個(gè)問(wèn)題的過(guò)程中,自己的思路其實(shí)還是蠻正確的,但知識(shí)面顯然不夠。一般程序員和高級(jí)程序員的差距除了解決問(wèn)題的思路方面,也有經(jīng)驗(yàn)和知識(shí)面的差距!
- javaScript讓文本框內(nèi)的最后一個(gè)文字的后面獲得焦點(diǎn)實(shí)現(xiàn)代碼
- javascript 設(shè)置文本框中焦點(diǎn)的位置
- javascript實(shí)現(xiàn)按回車鍵切換焦點(diǎn)
- JavaScript組件焦點(diǎn)與頁(yè)內(nèi)錨點(diǎn)間傳值的方法
- javascript新建標(biāo)簽,判斷鍵盤輸入,以及判斷焦點(diǎn)(示例代碼)
- JavaScript(js)設(shè)置默認(rèn)輸入焦點(diǎn)(focus)
- JavaScript 關(guān)于元素獲取焦點(diǎn)(隱藏元素與div)
- JavaScript實(shí)現(xiàn)文本框中默認(rèn)顯示背景圖片在獲得焦點(diǎn)后消失的方法
相關(guān)文章
鴻蒙JS實(shí)戰(zhàn)之計(jì)算器功能開(kāi)發(fā)實(shí)例
這篇文章主要給大家介紹了關(guān)于鴻蒙Js實(shí)戰(zhàn)之計(jì)算器功能開(kāi)發(fā)的相關(guān)資料,計(jì)算器是我們生活中經(jīng)常使用的應(yīng)用,此項(xiàng)目是基于Harmony實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器,需要的朋友可以參考下2024-02-02js實(shí)現(xiàn)選項(xiàng)卡內(nèi)容切換以及折疊和展開(kāi)效果【推薦】
本文主要介紹了js實(shí)現(xiàn)選項(xiàng)卡內(nèi)容切換以及文字折疊和展開(kāi)效果的示例代碼。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01Js 獲取當(dāng)前函數(shù)參數(shù)對(duì)象的實(shí)現(xiàn)代碼
這篇文章主要介紹了Js 獲取當(dāng)前函數(shù)參數(shù)對(duì)象的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-06-06Javascript 寫的簡(jiǎn)單進(jìn)度條控件
2008-01-01兩種JS實(shí)現(xiàn)屏蔽鼠標(biāo)右鍵的方法
這篇文章主要介紹了兩種JS實(shí)現(xiàn)屏蔽鼠標(biāo)右鍵的方法,瀏覽者在訪問(wèn)你網(wǎng)頁(yè)的時(shí)候就不能點(diǎn)擊右鍵,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-08-08淺談js中用$(#ID)來(lái)作為選擇器的問(wèn)題(id重復(fù)的時(shí)候)
下面小編就為大家?guī)?lái)一篇淺談js中用$(#ID)來(lái)作為選擇器的問(wèn)題(id重復(fù)的時(shí)候)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02