GetFile.wsc 复制代码 代码如下:<?xml version="1.0" encoding="gb2312"?> <component> <?component error="true" debug="true"?> <public> <property name="Referer" /> <property name="Content" /> <property name="Data" /> <method name="GetFile"> <parameter name="URL" /> </method> <method name="Save"> <parameter name="Path" /> </method> </public> <implements type="Behavior"> <event name="ondowncomplete" /> </implements> <object progid="Microsoft.XmlHttp" id="Http" /> <script language="javascript"> <![CDATA[ var Referer, Content, Data; var Stream = new ActiveXObject("ADODB.Stream"); Stream.Type = 1; function onReady() { if(Http.readyState == 4) { Content = Http.responseText; Data = Http.responseBody; fireEvent("ondowncomplete"); Http.abort(); } } function GetFile(URL) { Http.onreadystatechange = onReady; Http.open("GET", URL, true, "", ""); if(Referer) Http.setRequestHeader("Referer", Referer); Http.send(null); } function Save(Path) { Stream.Open(); Stream.Write(Data); Stream.SaveToFile(Path, 2); Stream.Close(); } ]]> </script> </component> test.hta 复制代码 代码如下:<html><head><script> var Down = document.createElement("Comment"); document.lastChild.lastChild.appendChild(Down); Down.style.behavior="url(GetFile.wsc)"; Down.ondowncomplete = function() { //document.write(Down.Content); Down.Save(SaveTo.value); Go.disabled=0; alert("OK"); } function GetFile() { Go.disabled = 1; Down.Referer = Referer.value; Down.GetFile(URL.value); } </script> </head><body> URL: <input id="URL" size="50" value="http://www.booksky.biz/SendFile.aspx?FileID=15531"><br> Referer: <input name="Referer" size="40" value="http://www.booksky.biz"><br> SaveTo: <input name="SaveTo" size="40" value="D:Test.gif"><br> <input id="Go" type=button value="下载" onclick="GetFile()"> </body></html>
推荐阅读
Javascript模块模式分析
Douglas Crockford已经传授了一个有用的单例模式(singleton pattern)实现此规则,我认为他的模式有益于你基于YUI的那些应用。Douglas叫它模块模式(module pattern)。它是如下工作的: 创建一个命名空间对象:如>>>详细阅读
本文标题:通过修改referer下载文件的方法
地址:http://www.17bianji.com/kaifa2/JS/29687.html
1/2 1