亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript使用focus()設(shè)置焦點(diǎn)失敗的解決方法

 更新時(shí)間:2014年09月03日 15:30:30   投稿:whsnow  
這篇文章主要介紹了JavaScript使用focus()設(shè)置焦點(diǎn)失敗的一個(gè)解決方法 ,需要的朋友可以參考下

昨天修改機(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í)面的差距!

相關(guān)文章

最新評(píng)論