javascript XHR對象的封裝(跨瀏覽器)

  1. 加載文檔:
    /*
    @desc 加載XHR文件
    @author lee [<[email protected]>]
    @param file 文件路徑
    @param async 同步或異步 true 異步 flase 同步
    @return xmlDoc 加載後的內容
    */
    function loadDoc(file,async=true){
    var xhr
    var ret
    if(window.XMLHttpRequest){  // code for IE7+, Firefox, Chrome, Opera, Safari
        xhr=new XMLHttpRequest()
    }else{  // code for IE6, IE5
        xhr=new ActiveXObject("Microsoft.XMLHTTP")
    }
    xhr.open("post",file,async)
    // xhr.withCredentials = true
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
    // xhr.setRequestHeader("Authorization", "Basic " + btoa("username:password"))
    xhr.addEventListener('readystatechange',function(){
        if(xhr.readyState < 4){
            // 加載中
        }else if (xhr.readyState == 4 && xhr.status == 200){
            // 成功
            ret=xhr.responseText
        }else{
            // 失敗
            xhr.abort()
            ret = false
        }
    })
    xhr.send()
    return ret
    }
  2. 加載字符串:
    /*
    @desc 加載XML文檔
    @author lee [<[email protected]>]
    @param txt 字符串
    @param async 同步或異步 true 同步 flase 異步
    @return xmlDoc 加載後的DOM對象
    */
    function loadStr(txt,async=true){
    var xmlDoc;
    var parser;
    if(window.DOMParser){
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(txt,"text/xml");
    }
    else{  // Internet Explorer
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async=async;
        xmlDoc.loadXML(txt);
    }
    return xmlDoc
    }
  3. 獲取第一個元素節點(避免獲取到空的節點):
    /*
    @desc 獲取第一個元素節點
    @author lee [<[email protected]>]
    @param name 節點名
    @return node_name 子節點名
    */
    function getElementChild(name){
    var node_name=name.firstChild;
    while (node_name.nodeType!=1){
      node_name=node_name.nextSibling;
    }
    return node_name;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章