根据用户的需求,要在页面加载的时候根据页面内一个a标签的href下载内容到用户本地。这个功能比较流氓,后来通过沟通取消这个功能。在网上找到一些资料,下面把实现方面记录一下。
要使用以下的代码,必须使用IE浏览器,将安全级别调至"中"
对未标记为可安全执行脚本的ActiveX空间初始化并执行脚本 启用 (删除功能需要使用)
通过域访问数据源 启用 (写入功能需要使用)
otagsA = document.getElementById("表格ID").getElementsByTagName("a"); //获得表格内的所有a标签
for (i = 0; i < otagsA.length; i++) {
var bool = otagsA[i].href.indexOf("gw"); //遍历所有a标签,如果a标签href中包含gw执行下面方法
if(bool>0){
getXML(otagsA[i].href);
}
}
var xh;
function getXML(geturl)
{
xh = new ActiveXObject("Microsoft.XMLHTTP");
xh.onreadystatechange = getReady;
xh.open("GET",geturl,true);
xh.send();
}
function getReady()
{
alert(xh.readyState);
if(xh.readyState==4)
{
if(xh.status==200){
saveFile("d:\gwScratchFile.gw"); //这里用户定义文件储存到用户本地的位置
return true;
}
else
{return false;}
}
else
return false;
}
function saveFile(tofile)
{
var objStream;
var imgs;
imgs = xh.responseBody;
objStream = new ActiveXObject("ADODB.Stream");
objStream.Type = 1;
objStream.open();
objStream.write(imgs);
objStream.SaveToFile(tofile)
}
function downloadFile(url) {
var elemIF = document.createElement("iframe");
elemIF.src = url;
elemIF.style.display = "none";
document.body.appendChild(elemIF);
}