当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 通过修改referer下载文件的方法

Javascript
VB倒计时器和JS当前时间
如何显示当天日期
一种JavaScript的设计模式
js变量作用域及可访问性的探讨
在JavaScript中实现命名空间
删除重复数据的算法
Javascript操纵Cookie实现购物车程序
键盘控制事件应用教程大全
通过JAVASCRIPT读取ASP设定的COOKIE
用函数式编程技术编写优美的 JavaScript
最简短的拖动对象代码实例演示
禁止刷新,回退的JS
js验证表单大全
js验证表单第二部分
DHTML 中的绝对定位
解决FireFox下[使用event很麻烦]的问题
准确获得页面、窗口高度及宽度的JS
js获取单选按钮的数据
检测屏幕分辨率
双击滚屏-常用推荐

Javascript 中的 通过修改referer下载文件的方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 204 ::
收藏到网摘: n/a

遇到了一个郁闷的事:如果让Http对象作全局变量,那么onreadystatechange只会在第一次执行时触发,以后都不会触发这个事件了。 只好在每次Down文件时重新创建一个XmlHttp对象。 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>