1. 程式人生 > >由於該控制元件目前不可用、未啟用或其型別不允許,因此無法將焦點移向它

由於該控制元件目前不可用、未啟用或其型別不允許,因此無法將焦點移向它

目錄

問題截圖

問題來源

分析問題

解決問題

問題截圖

問題來源


    問題是這樣的:在本地測試沒有問題,在現場升級補丁後測試有js報錯


    
分析問題


    遇到問題首先想到是百度,百度沒有找到好的解決方法,就只好自己解決了  呵呵

  • 思路一:

看錯誤是index.jsp的1046行發生的,找到jsp發現沒有這麼多行,仔細看jsp裡面用了很多include標籤,知道了通過錯誤行找到問題的可能性比較小,就換一種思路

  • 思路二:

           根據錯誤資訊來分析問題,可能是找某個input框想獲取焦點,但是這個input框沒有找到導致的
    找jsp中獲取焦點的程式碼,發現引起問題的js程式碼如下:
    function changeUsername(){
        var form = document.getElementById("loginForm");
        form.userName.focus();
    }
    問題出在:在某些情況下獲取username的input框不存在,再去獲取焦點導致的

    分析本地測試沒有問題,現場升級補丁後測試有問題,對比環境,發現用IE版本一樣,經過前端確認就是IE版本導致的

解決問題


    解決IE版本不同導致的問題,新增判斷,在某些情況導致input框不存在時,就不去獲取焦點