js xml加載和讀取

window.ActiveXObject

(window.ActiveXObject) 什麼意思?

解:判斷瀏覽器是否支持ActiveX控件,如果瀏覽器支持ActiveX控件可以利用

var xml=new ActiveXObject("Microsoft.XMLHTTP");創建XMLHttpRequest 對象(這是在IE7以前的版本中);在較新的IE版本中可以利用 var xml=new ActiveXObject("Msxml2.XMLHTTP")的形式創建XMLHttpRequest對象;而在IE7及非IE瀏覽器中可以利用var xml=new XMLHttpRequest()創建XMLHttpRequest對象。

創建XMLHttpRequest 對象,必須考慮到瀏覽器兼容問題

創建XMLHTTPRequest對象

對了,說到區別,我們這裏來看看怎麼來聲明(使用)它,在使用XMLHTTPRequest對象發送請求和處理響應之前,我們必須要用javascript創建一個XMLHTTPRequest對象。(IE把XMLHTTPRequest實現爲一個ActiveX對象,其他的瀏覽器[如Firefox/Safari/Opear]則把它實現爲一個本地的javascript對象)。下面我們就來看看具體怎麼運用javascript來創建它吧:

<script language="javascript" type="text/javascript">
<!--
var xmlhttp;
// 創建XMLHTTPRequest對象
function createXMLHTTPRequest(){
if(window.ActiveXObject){ // 判斷是否支持ActiveX控件
xmlhttp = new ActiveObject("Microsoft.XMLHTTP"); // 通過實例化ActiveXObject的一個新實例來創建XMLHTTPRequest對象
}
else if(window.XMLHTTPRequest){ // 判斷是否把XMLHTTPRequest實現爲一個本地javascript對象
xmlhttp = new XMLHTTPRequest(); // 創建XMLHTTPRequest的一個實例(本地javascript對象)
}
}
//-->
</script>

js用來區別IE與其他瀏覽器及IE6-8之間的方法。

1、document.all
2、!!window.ActiveXObject;

使用方法如下:

if (document.all){
alert(”IE瀏覽器”);
}else{
alert(”非IE瀏覽器”);
}

if (!!window.ActiveXObject){
alert(”IE瀏覽器”);
}else{
alert(”非IE瀏覽器”);
}

下面是區別IE6、IE7、IE8之間的方法:

var isIE=!!window.ActiveXObject;
var isIE6=isIE&&!window.XMLHttpRequest;
var isIE8=isIE&&!!document.documentMode;
var isIE7=isIE&&!isIE6&&!isIE8;
if (isIE){
if (isIE6){
alert(”ie6″);
}else if (isIE8){
alert(”ie8″);
}else if (isIE7){
alert(”ie7″);
}
}

首先我們確保這個瀏覽器爲IE的情況下,進行了在一次的檢測,如果你對此有懷疑,可以測試一下。

我這裏就直接使用在判斷中了,你也可以將他們先進行聲明成變量進行使用。據說火狐以後也會加入document.all這個方法,所以建議使用第二種方法,應該會安全一些。

【補充:】

open()只是初始化,做好準備發送,
send()纔是發送請求。
AJAX是異步的,也就是說,它不是等上一步執行完再去執行下一步,從服務端去處理的時候,它是不會等服務端處理完,返回值回來,再去執行下面的代碼的。
當服務器執行完後,返回來的結果,由回調函數來處理,你這個回調函數就是:stateChange()
它會根據狀態的值來處理。狀態的值爲4表示從服務端已處理完成了。status爲200表示處理成功了,沒有問題

 

 

<%-- 
    // 加載xml文檔
    loadXML = function (xmlFile) {
          
        var xmlDoc;
        if(window.ActiveXObject) {
            //xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc =new ActiveXObject("microsoft.xmldom"); 
            xmlDoc.async =false;
  
            xmlDoc.load(xmlFile);
             
        }
        elseif (document.implementation && document.implementation.createDocument) {
  
            xmlDoc = document.implementation.createDocument('','', null);
            xmlDoc.load(xmlFile);
        }
        else
        {return null; }
        returnxmlDoc;
    }
  
    function CreateTree() {
  
        var xmlDoc = loadXML('KnowledgeMapXmlData.xml');
        if(xmlDoc == null) {
            return;
        }
  
        var firstXmlNodes = xmlDoc.documentElement;
         
        for(var i = 0; i < firstXmlNodes.childNodes.length; i++) {
  
            var firstNodeName = firstXmlNodes.childNodes[i].attributes[0].text;
              
            var seconXmlNodes = firstXmlNodes.childNodes[i];
  
            for(var j = 0; j < seconXmlNodes.childNodes.length; j++) {
  
                var secondNodeName = seconXmlNodes.childNodes[j].attributes[0].text;
                 
                var thirdXmlNodes = seconXmlNodes.childNodes[j];
  
                for(var k = 0; k < thirdXmlNodes.childNodes.length; k++) {
  
                    var thirdNodeName = thirdXmlNodes.childNodes[k].attributes[0].text;
                     
                }
  
            }
  
        }
  
    }
  
    --%>

JS讀取並輸出xml文件節點及屬性(兼容IE,FF)
這個東西讓我好難找啊,不過還是找到了。

好東東不能自己藏着,發出來分享一下了,^_^ |

book.html   代碼如下:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript">
var xmlDoc;
var browse="";
function loadXML()
{
    var fileRoute="books.xml"
    if (window.ActiveXObject)
    {
        xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
        xmlDoc.async=false;
        xmlDoc.load(fileRoute);
        browse="ie";
    }
    else if (document.implementation && document.implementation.createDocument)
    {
        xmlDoc=document.implementation.createDocument('', '', null);
        xmlDoc.load(fileRoute);
        browse="ff";
    }
    else
    {
    alert( '未做與該瀏覽器的兼容!');
    }
}

function getmessage()
{
    var msg='<table border="1" cellspacing="0" cellpadding="0" width="500">';
    msg+='<tr><td width="90"></td><td width="100">圖書編號</td><td width="100">種類編號</td><td width="110">圖書名稱</td><td width="100">作者</td></tr>'
    if(browse=="ff")
    {
        var cNodes = xmlDoc.getElementsByTagName("book");
        for(j=0;j<cNodes.length;j++)
        {
            var bookID=xmlDoc.getElementsByTagName("book")[j].getAttribute("id");
            var sortID=xmlDoc.getElementsByTagName("book")[j].getAttribute("sortID");
            var bookTitle=xmlDoc.getElementsByTagName("title")[j].childNodes[0].nodeValue;
            var bookAuthor=xmlDoc.getElementsByTagName("author")[j].childNodes[0].nodeValue;
            msg+='<tr><td>'+j+'</td><td>'+bookID+'</td><td width="100">'+sortID+'</td><td width="190">'+bookTitle+'</td><td width="120">'+bookAuthor+'</td></tr>'
        }
       
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章