使用onblur註冊js事件當中alert和focus使用導致死循環問題排除

 

在網頁上表單某個元素若失焦時候就會觸發OnBlur事件
失焦的意思指的是失去焦點,瀏覽器是根據滑鼠游標聚焦至其他元素時,認定原本的元素失焦。


onblur="將觸發的 javascript function"


一個alert死循環的發生


原來是因為onblur後續再做focus的寫法沒有立即執行
因為alert會讓本身網頁原先停駐元素失焦

這裡我們可以於原先focus外層包一個setTimeout
強制讓其恢復具焦
setTimeout() 的作用 是在延遲了某段時間 (單位為毫秒) 之後
才去執行「一次」指定的程式碼







所以建議不要在onblur 去使用到alert



Ref:
Javascript alert messages in infinite loop
https://stackoverflow.com/questions/6356341/javascript-alert-messages-in-infinite-loop
使用onblur+alert+focus导致的死循环解决
http://jianboge.com/d321029

留言

張貼留言

這個網誌中的熱門文章

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題