首页 > 代码库 > js 技巧 (四)

js 技巧 (四)

//下载文件 

function DownURL(strRemoteURL,strLocalURL) 
{ 
try 
{ 
  var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP"); 
  xmlHTTP.open("Get",strRemoteURL,false); 
  xmlHTTP.send(); 
  var adodbStream=new ActiveXObject("ADODB.Stream"); 
  adodbStream.Type=1;//1=adTypeBinary 
  adodbStream.Open(); 
  adodbStream.write(xmlHTTP.responseBody); 
  adodbStream.SaveToFile(strLocalURL,2); 
  adodbStream.Close(); 
  adodbStream=null; 
  xmlHTTP=null; 
   
} 
catch(e) 
{ 
  window.confirm("下载URL出错!"); 
} 
//window.confirm("下载完成."); 
} 

//检验连接是否有效 

function getXML(URL)  
{ 
var xmlhttp = new ActiveXObject("microsoft.xmlhttp"); 
xmlhttp.Open("GET",URL, false);  
try 
 
  xmlhttp.Send(); 
} 
catch(e){} 
finally  
{ 
  var result = xmlhttp.responseText; 
  if(result)  
  { 
   if(xmlhttp.Status==200) 
   { 
    return(true); 
   } 
   else  
   { 
    return(false); 
   } 
  } 
  else  
  { 
   return(false); 
  } 
} 
} 



//POST代替FORM 

<SCRIPT language="VBScript"> 
Function URLEncoding(vstrIn) 
    strReturn = "" 
    For i = 1 To Len(vstrIn) 
        ThisChr = Mid(vStrIn,i,1) 
        If Abs(Asc(ThisChr)) < &HFF Then 
            strReturn = strReturn & ThisChr 
        Else 
            innerCode = Asc(ThisChr) 
            If innerCode < 0 Then 
                innerCode = innerCode + &H10000 
            End If 
            Hight8 = (innerCode  And &HFF00)" &HFF 
            Low8 = innerCode And &HFF 
            strReturn = strReturn & "%" & Hex(Hight8) &  "%" & Hex(Low8) 
        End If 
    Next 
    URLEncoding = strReturn 
End Function 
Function bytes2BSTR(vIn) 
    strReturn = "" 
    For i = 1 To LenB(vIn) 
        ThisCharCode = AscB(MidB(vIn,i,1)) 
        If ThisCharCode < &H80 Then 
            strReturn = strReturn & Chr(ThisCharCode) 
        Else 
            NextCharCode = AscB(MidB(vIn,i+1,1)) 
            strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) 
            i = i + 1 
        End If 
    Next 
    bytes2BSTR = strReturn 
End Function 
dim strA,oReq 
strA = URLEncoding("submit1=Submit&text1=中文") 
set oReq = CreateObject("MSXML2.XMLHTTP") 
oReq.open "POST","http://ServerName/VDir/TstResult.asp",false 
oReq.setRequestHeader "Content-Length",Len(strA) 
oReq.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded" 
oReq.send strA 
msgbox bytes2BSTR(oReq.responseBody) 
</SCRIPT> 

//readyState是xmlhttp返回数据的进度,0=载入中,1=未初始化,2=已载入,3=运行中,4=完成 

高级应用(二)~~~~~~~~~~~~~~~~ 


//组件是否安装 

isComponentInstalled("{6B053A4B-A7EC-4D3D-4567-B8FF8A1A5739}", "componentID")) 



//检查网页是否存在 

function CheckURL(URL) 
{ 
  var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
  xmlhttp.Open("GET",URL, false); 
  try 
  {  
    xmlhttp.Send();  
    var result = xmlhttp.status; 
  } 
  catch(e) {return(false); } 
  if(result==200) 
  {  
    return true; 
  } 
  xmlhttp = null; 
  return false; 
} 


//连接数据库 

<script language="javascript"> 
  //用 JavaScript 写服务器端连接数据库的代码示例 
  var conn = new ActiveXObject("ADODB.Connection"); 
  conn.Open("Provider=SQLOLEDB.1; Data Source=localhost; User ID=sa; " 
    +"Password=; Initial Catalog=pubs"); 
  var rs = new ActiveXObject("ADODB.Recordset"); 
  var sql="select * from authors"; 
  rs.open(sql, conn); 
shtml = "<table width=‘100%‘ border=1>"; 
shtml +="<tr bgcolor=‘#f4f4f4‘><td>au_id</td><td>au_lname</td><td>au_fname</td><td>phone</td><td>address</td><td> city</td><td>state</td><td>zip</td></tr>"; 
  while(!rs.EOF) 
  { 
shtml += "<tr><td>" + rs("au_id") + "</td><td>" + rs("au_lname") + "</td><td>" + rs("au_fname") + "</td><td>" + rs("phone") + "</td><td>" + rs("address") + "</td><td>" + rs("city") + "</td><td>" + rs("state") + "</td><td>" + rs("zip") + "</td></tr>"; 
rs.moveNext; 
  } 
  shtml += "</table>"; 
  document.write(shtml); 
  rs.close();  
  rs = null;  
  conn.close();  
  conn = null; 
</script> 


//使用数据岛 

<html> 
<body> 
srno:<input type=text datasrc=http://www.mamicode.com/#xmldate DataFLD=srno size="76"><BR> 
times:<input type=text datasrc=http://www.mamicode.com/#xmldate DataFLD=times size="76"><BR> 
<input id="first" TYPE=button value="http://www.mamicode.com/<< 第一条记录" onclick="xmldate.recordset.moveFirst()"> 
<input id="prev" TYPE=button value="http://www.mamicode.com/<上一条记录" onclick="xmldate.recordset.movePrevious()">   
<input id="next" TYPE=button value="http://www.mamicode.com/下一条记录>" onclick="xmldate.recordset.moveNext()">   
<input id="last" TYPE=button value="http://www.mamicode.com/最后一条记录>>" onclick="xmldate.recordset.moveLast()">    
<input id="Add" TYPE=button value="http://www.mamicode.com/添加新记录" onclick="xmldate.recordset.addNew()">   

<XML ID="xmldate"> 
<infolist> 
<info ><srno>20041025-01</srno><times>null</times></info> 
<info ><srno>20041101-09</srno><times>2004年10月1日2点22分0秒</times></info> 
</infolist> 
</XML> 
</body> 
</html> 


//获得参数 

<body> 
<a href="javascript:location.href=location.href + ‘?a=1&b=2‘">search</a> 
<script language="JavaScript"> 
<!-- 
var a = location.search.substr(1); 
if(a.length>0) 
{ 
var re = /([^&]*?)"=([^&]*)/g 
var s = a.match(re); 
for(var i= 0;i<s.length;i++) 
{ 
  alert(s); 
  alert(s.split("=")[1]); 
} 
} 
//--> 
</script> 
</body> 



//可编辑SELECT 

<input type=text name=re_name ><span ><select name="r00" onChange="document.all.re_name.value=http://www.mamicode.com/this.value;"> 
                <option value="http://www.mamicode.com/1">11111111<option> 
                <option value="http://www.mamicode.com/2">222222</option> 
                <option value="http://www.mamicode.com/3">333333</option> 
              </select> 
              </span>

  出处至:http://xiaobingandxiaoer.iteye.com/blog/1917696

js 技巧 (四)