IE8中关于使用iframe进行动态文件下载的问题

         我们知道只要在页面中创建个iframe元素,把src的值设置为网络文件如zip,js,rar等地址,就可以实现动态文件的下载功能。如果是普通的静态文件,则可以直接使用a元素链接即可,把a元素的src指向网络地址文件,点击后便会立刻下载(这相当于直接在浏览器中键入网络文件地址)。
         而动态文件下载,IE浏览器会做出一些友好的提示(当访问地址有文件下载时便会在网页的最上方提示:"为帮助保护您的安全,Internet Explorer已经阻止从此站点下载文件到您的计算机。单击此处查看选项...",这是ie的保护程序,防止下载有害文件,用户也可以自己对浏览器设置成不提示或者下载时按住ctrl键)。当我们允许下载时,浏览器会重新刷新当前页面,需要我们再点击下载一次才会弹出保存文件的对话框。所以这个相对于a元素来说多了一个刷新页面的过程,但下载的内容可以是后台动态生成的。

 前面讲了那么多,还是没有说到我所遇到的问题,真是悲催。我遇到的问题是(以下问题均在IE8 8.0.6001.18702版本出现,在ie6版本中没有这个问题):
   1.我在页面中创建一个iframe
   2.然后也设置了src为网络文件地址
   3.ie提示下载,我选择允许
   4.页面刷新,我重新点击进行下载
   5.ie提示下载,我选择允许
   6.页面刷新,我重新点击进行下载
   7.ie提示下载,我选择允许
   ....(没完没了)
 就这样,如果不进行浏览器设置或者不按住ctrl永远也下载不了文件。在ie6下只需要进行两次过程即可下载文件。

 经过分析和测试得到下面这个结果,不知道对不对,但都是在实践基础之上总结的:
   1.创建的iframe的页面在浏览器刷新后还必须存在(我的问题就是,我在一个动态创建的内嵌页面中创建这个下载文件的iframe的,当页面刷新后,内嵌页面已经消失)
   2.刷新后的页面中不能有404的内嵌页面,当我刷新的页面中有一个404页面时,问题还是重现

 下面是自己的解决方案:
   把iframe创建的top页面中,这样浏览器刷新后,top页面总是存在,并且解决页面中存在的404问题。这样就不会出现一直在弹出下载提示的问题了。
   唉,可怜了web开发人员, IE6,IE7,IE8,IE小叔、小姑妈、大舅子、大姨妈我...... (~o~)

转载于:https://www.cnblogs.com/hello-kitty/archive/2011/03/15/1985141.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值