求教关于window.location.href 问题

av168659700 2011-07-03 10:42:37
我使用EXTJS框架,网上搜索的文章说EXTJS最简单的实现浏览器下载就是:
window.location.href = 'path';
后经过尝试:window.location.href=“http://IP地址/123.ipg”和
window.location.href=“123.ipg”
结果在浏览器中都是在页面中直接被打开了,并没有弹出下载对话框!!!!!
请问这是为神马啊?EXTJS中怎么样实现浏览器下载???

...全文
377 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnnzp 2011-07-05
  • 打赏
  • 举报
回复
浏览器会在两个时间点判断是下载文件还是渲染文件。
第一个时间点是输入url之后,此时浏览器会根据url的后缀来判断是否是支持的mime-type。譬如输入:a.exe,浏览器发现.exe后缀无法渲染,于是进入下载流程。有些url没有后缀,所以不能判断mime-type的时候,会正常的去服务器请求文件。
第二个时间点是向服务器请求了url后,服务器会返回http header,这个http header里会有该资源文件的mime-type,浏览器根据该mime-type判断是否可以渲染,如果不能渲染那么进入下载流程。

所以如果浏览器能渲染jpg文件,那么你输入这个jpg的地址,都是会显示出来。除非你用右键另存为之类的才能主动触发下载流程。
remy303 2011-07-04
  • 打赏
  • 举报
回复
使用window.open,将下载的文件的url作为参数可以实现下载,
我做的例子是这样的:
页面上有按钮<button onclick="clickTest();">click</button>
js文件的脚本为:
function clickTest() {
window.open("http://www.skycn.com/down.php?uri=http://117.41.237.28:82/down/wrar401sc.exe", "", "", false);
}
这样可以实现将天空软件的WinRAR 4.01 简体中文版下载下来,下载前弹出对话框。
wen691 2011-07-04
  • 打赏
  • 举报
回复
d i n g
豆虫 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 aspwebchh 的回复:]
你要下载得去服务器端做工作
[/Quote]
++++
服务端做好了 直接请求到路径就自动出来下载的那个提示了 后台的代码网上搜搜 一大堆
像http://...com/文件路径/aaa.doc 点这个链接就自动出来了
lsw645645645 2011-07-04
  • 打赏
  • 举报
回复
KK3K2005 2011-07-04
  • 打赏
  • 举报
回复
首先 下载和EXT没什么关系

另外 下载请查看http协议
指定了规定的http头
浏览器才会吧这个文件作为下载处理
挨踢直男 2011-07-04
  • 打赏
  • 举报
回复
你要下载得去服务器端做工作
挨踢直男 2011-07-04
  • 打赏
  • 举报
回复
http://IP地址/123.ipg
你直接把这个地址放浏览器地址栏里回车,肯定是显示图片的啊

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧