欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

昨天修改機(jī)頂盒上面的EPG頁面,遇到一個(gè)小問題。用戶購買游戲時(shí)需要彈出購買確認(rèn)對話框,對話框的默認(rèn)焦點(diǎn)規(guī)定必須停留在“取消”按鍵上。很簡單的需求,使用JavaScript的focus()方法就可以實(shí)現(xiàn)了。簡單的代碼示例如下:

document.getElementById("cancel").focus()

但是苦逼的是,機(jī)頂盒真是一個(gè)大坑。由于要兼容所有現(xiàn)存的機(jī)頂盒型號(hào),需要對8款機(jī)頂盒進(jìn)行適配。然后就出現(xiàn)問題了!一款中興B600的機(jī)頂盒完全沒法將焦點(diǎn)設(shè)置到取消按鍵上。以下是我的解決思路:

首先確認(rèn)該機(jī)頂盒是否支持getElementById()方法以及是否成功獲得了ID為“cancel”的元素:測試方法很簡單,直接另寫了一個(gè) <p id="test">test</p> ,然后在同樣的地方獲取ID為“test”的元素,并進(jì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(),但是就是無法設(shè)置焦點(diǎn)到彈出的對話框中。

前前后后折騰了一個(gè)多小時(shí),最后大BOSS出現(xiàn)了,就簡單說了一句話就解決了這個(gè)問題!有可能要主動(dòng)調(diào)用flur()將原來的焦點(diǎn)取消掉!

document.getElementById("purchase").flur()

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

相關(guān)文章

最新評論