我一直在使用Microsoft Technet网站,您可以通过单击页面上的链接下载ISO文件。元素是这样的:
<a href="javascript:void(0)" onmouseout="HideToolTip()"
onmouseover="ShowToolTip(event,'Click here to download.')"
onclick="javascript:RunDownload('39010^313^164',event)"
class="detailsLink">Download</a>
我无法在脚本中找到RunDownload()
方法。我想知道它可能做什么。我的意思是通常当我提供一个供人下载的链接时我会提供一个锚点:
<a href="www.foo.com/mymp3.mp3">download</a>
但这与脚本的作用有何不同?因为即使我跑'Fiddler',我也无法看到实际的下载位置。
答案 0 :(得分:8)
没有“javascript下载”链接。 Javascript可以打开一个新窗口,或模拟链接上的点击。
您必须找到的是此点击触发的功能将导致的网址。
这是一个如何做的例子:
假设我们有:
<a id="download">download Here §§§</a>
那么这个jQuery代码:
$('#download').click( function() {
window.location.href = 'http://example.org/download/ISO.ISO';
} );
将重定向到网址http://example.org/download/ISO.ISO。此URL是否开始下载取决于HTTP标头和浏览器,而不是javascript所做的。
答案 1 :(得分:2)
下载位置可以是网址重写的路径。这意味着可能有一些参数是通过HTTP Post提供的,并且Web服务器或Web应用程序中的某些HTTP处理程序可能从HTTP请求获取一些参数并将文件字节写入HTTP响应,这绝对隐藏了文件位于实际服务器的文件系统。
也许这就是幕后的情况,并阻止您知道文件位置。
例如,我们可以这样: http://mypage.com/downloads/1223893893
你请求像“whatever.exe”这样的可执行文件将它下载到你的硬盘上。哪个是“http:/mypage.com/downloads/whatever.exe”?实际上,它不存在。它是一个保存在某个记录中的长数据库中的字节数组,“mypage”Web应用程序处理对标识为“1223893893”的文件的请求,该文件可以是标识符,日期时间或任何参数的组合。
答案 2 :(得分:0)
我认为 RunDownload 的功能可能是它可能会通过服务器的get请求通知服务器另一个下载即将发生,或者它可能需要通过设置来运行下载后台目标属性为iframe,因此用户无需打开另一个标签页并在同一页面上下载文件。
<a href="file.mp3" onclick="runDownload();">Download</a>
JS
var runDownload=function(){
e.preventDefault();
increaseDownloadCountOnTheServer(location);
window.location.href="filelocation.exe";
}