"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>無標題文檔</title>
</head>
<script type="text/javascript" src="js/detect.js"></script>
<script type="text/javascript" src="js/stringbuffer.js"></script>
<body>
<script type="text/javascript">
if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) {
function XMLHttpRequest() {
var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"];
for (var i=0; i < arrSignatures.length; i++) {
try {
var oRequest = new ActiveXObject(arrSignatures[i]);
return oRequest;
} catch (oError) {
}
}
}
}
function test(){
try
{
var strUrl="http://www.ayandy.com/Service.asmx";
var oBuffer=new StringBuffer()
oBuffer.append('<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> ');
oBuffer.append('<soap:Body><getWeatherbyCityName xmlns="http://tempuri.org/"> <theCityName>');
oBuffer.append("昆明");
oBuffer.append("</theCityName><theDayFlag>");
oBuffer.append("Today");
oBuffer.append("</theDayFlag></getWeatherbyCityName></soap:Body></soap:Envelope>");
var objXMLHttp = new XMLHttpRequest();
objXMLHttp.open("Post",strUrl, true);
objXMLHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
objXMLHttp.setRequestHeader("SOAPAction", "http://tempuri.org/getWeatherbyCityName");
objXMLHttp.onreadystatechange = function () {
if (objXMLHttp.readyState == 4)
{
if(objXMLHttp.status==200)
{
fnGetWeather(objXMLHttp.responseText.toString());
}else
{
return objXMLHttp.statusText ;
}
}
}
objXMLHttp.send(oBuffer.toString());
}
catch(e){alert(e.description);}
}
function fnGetWeather(sTheGet)
{
var reg = /<string>(.*?)</string>/gi;
var arrMatch=sTheGet.match(reg);
var reg4=/<string>(.*)</string>/;
var i;
var strAll=new StringBuffer();
strAll.append("今天:");
for(i=0;i<arrMatch.length-2;i++)
{
reg4.test(arrMatch[i]);
strAll.append(RegExp.$1);
strAll.append(" ");
}
alert(strAll.toString());
}
alert(test());
</script>
</body>
</html>
總結:
1.js文件最好不要添加中文註釋,會有不可控制的錯誤。
2.用esc.wsf壓縮js文件最好只用到第3級,第四級會改變變量名稱,但變量有時網頁會用到。
3.注意返回值在onreadystatechange事件中,所以最好有個回調函數。
4.js文件包含其它js文件,必須要用函數實現。