1. 程式人生 > >[轉]IE9.0或者360下js(JavaScript、jQuery)不能正確執行(加載),按F12後執行正常;Firefox下ajax的success返回數據data(json、string)無法獲取

[轉]IE9.0或者360下js(JavaScript、jQuery)不能正確執行(加載),按F12後執行正常;Firefox下ajax的success返回數據data(json、string)無法獲取

cli onf string 不同 logs script blog 綁定 導入

兼容問題1:

頁面的分享等插件加載不全,並無法點擊。

兼容問題2:

IE下頁面選擇器(#id、.class.etc.)綁定click事件無法訪問到,後臺springmvc方法,也無法獲取ajax的success方法返回值data。

兼容問題3:

在IE和Google下能夠獲取,ajax的success返回的數據data,但firefox下獲取不到。

兼容問題4:

頁面跳轉,或url進入,js代碼不能正確執行,如果按了F12後(開啟F12),JavaScript(加載)事件可以正常響應,一切都正常執行。

總結:javascript和jQuery(本js)等,在不同的瀏覽器下會有很大不同的區別,所以積累這些兼容的經驗,以便解決前端問題。

感覺ie和chrome有的時候有點像,可是到ie11就感覺和firefox有點像了。

問題的來源:js沖突(導入)或者js版本,瀏覽器兼容等。

解決1:

html頁面的加載有多種寫法:

如1:$(function(){ ... });

如2:window.onload=function(){ ... }

如3:$(document).ready(function(){ ... });

希望同一個頁面,使用其中一種,即可,如果都使用,則會有問題,並卻在")"後邊,該有分號";"請不要省略。

還有導入時候:

<script type="text/javascript" src="/js/jquery-1.11.1.min.js"></script>

<script type="text/javascript" src="/js/jquery-1.8.0.min.js"></script>,引入一個即可,多個會沖突,小心jsp頁面導入沖突。

解決2、4:

其他js事件異常,代碼用到console對象,某些版本的ie (360等)不打開控制臺("F12")是沒有console這個對象,在IE中使用了console.log導致的。刪除console.log對象。

解決3:

firefox對ajax的返回值都是XML Document,所以,一般做IE、chrome和firefox兩個分支,

getBrowserNV()方法

//解決firefox提交兼容,firefox and chrome button -> ajax and submit conflict,and firefox response data default xml type.  
    var browser = getBrowserNV();  
    var reqPath = $("#req").val();  
    if(browser.indexOf("firefox") != -1){//firefox  
        $.ajax({  
            url:reqPath + "/mvc/getcity?id="+value+"&date="+new Date(),  
            type:"get",  
            dataType: "json", //firefox  
            success:function(data){  
            var county = eval(data);  
                。。。。  
            }  
            }  
        });  
    }else{//ie ,chrome etc.  
        $.ajax({  
            url:reqPath + "/mvc/getcity?id="+value+"&date="+new Date(),  
            type:"get",  
            success:function(data){  
            var county = eval(data);  
            var options = "<option value=‘0‘>請選擇城市</option>";  
                。。。。  
            }  
            }  
        }); 

  

[轉]IE9.0或者360下js(JavaScript、jQuery)不能正確執行(加載),按F12後執行正常;Firefox下ajax的success返回數據data(json、string)無法獲取