项目背景

针对用Sencha touch 1.1开发的一个用于通过ipad浏览的网站(其实是对PC端一个网站的映射)中的一个模块的开发,这个模块的主要功能就是用户浏览各种‘报告’,这些被阅览的‘报告’,其实是各种形式的文档,有word,ppt,xls, csv,pdf等,当然还包括一些视频文件

需求描述

用户登录网站,然后浏览所有报告的列表,如果想看其中某一个就点击打开查看,当用户点击其中一个文件名时,就在浏览器中打开一个新的标签加载(其实就是当用户点击的时候去下载被点击的文档)文档内容

开发过程

其实是没有什么难度的开发,但是却没想到在开发过程中遇到了不小的麻烦,在ipad上的safari中以上需求都能够满足,可没想到将这个网站通过safari 的“at home Screen"(就是添加快捷方式到桌面)时,通过快捷方式进入网站后点击文档列表中的每一项都不能跳转到safari中去打开文档了,先解释一下,通过快捷方式打开网站,此时就像打开的一个app应用,没有地址栏,也就是完全看不出是在浏览器一样,这点和在pc上浏览网站时按F11全屏一样,
因为刚接触ipad 实在不知道怎么办,于是上网查,终于找到了解决方法,所有报告的列表页,每一个报告名字就是一个a标签,当点击报告名字时,会从数据库下载文档到服务器,然后将文档路径赋值给a标签的href属性,结果在浏览器中打开一个新标签,文档打开,就是这么简单,问题就出在最后a标签没有跳转,解决办法就是再给a标签href属性赋值后,要按如下写才可以跳转走:

var e = document.createEvent('MouseEvent');
e.initEvent('click', false, false);
setTimeout(a.dispatchEvent(e), 2000);

当时处理这个问题时ios的版本是6,苹果还没有出iso7,这样的解决方案在iso7一下是可行的,但到了iso7就不行了,又没效果了,网上也没有找到解决方法,自己想吧。
终于天不负有心人,撞到墙了,果断改变思路,以前是点击文档名时去下载文档然后打开文档,现在不如先跳转,实验证明如果a标签这样写

<a href="http://www.cnblogs.com/" target="_blank" />

是没有问题的,可以正常工作,那么我不如不管用户点击哪一个文档,都先在浏览器中打开一个空白页(当然也不是完全空白,有一个加载图标,显示正在加载文档),然后在空白页中下载文档,获得文档路径后用

location.replace(文档路径);

就行了,
这样做,不管什么系统版本的ipad都可以正常打开报告了。

问题解决(一)在ipad上通过safari浏览文档的更多相关文章

  1. JAVA:借用OpenOffice将上传的Word文档转换成Html格式

    为什么会想起来将上传的word文档转换成html格式呢?设想,如果一个系统需要发布在页面的文章都是来自word文档,一般会执行下面的流程:使用word打开文档,Ctrl+A,进入发布文章页面,Ctrl ...

  2. 配置允许匿名用户登录访问vsftpd服务,进行文档的上传下载、文档的新建删除等操作

    centos7环境下 临时关闭防火墙 #systemctl stop firewalld 临时关闭selinux #setenforce 0 安装ftp服务 #yum install vsftpd - ...

  3. pdfFactory如何设置限制打印和浏览文档权限

    当我们进行私密文件的分享时,除了要设置密码保护文件内容外,还要注意设置打印限制,防止他人利用打印的方式,进行纸质文件的传播. 在使用pdfFactory安全策略时,我们可以通过设定禁止打印的方式,完全 ...

  4. 五分钟轻松搞定产品需求文档!这可能史上最全PRD文档模板

    本文由  @JustWu 原创发布于社区 为什么写这篇文章? 第一:写PMCAFF的PRD文档,大家都是用户,比较好参考与理解,方便大家来找我写的不好的地方. 第二:我在自学PRD文档的编写过程中,总 ...

  5. .net core webapi 文件上传在 Swagger 文档中的有好提示处理

    前提: 需要nuget   Swashbuckle.AspNetCore 我暂时用的是  4.01 最新版本: 描述:解决 .net core webapi 上传文件使用的是 IFormFile,在S ...

  6. C#实现上传/下载Excel文档

    要求 环境信息:WIN2008SERVER  开发工具:VS2015 开发语言:C# 要求: 1.点击同步数据后接口获取数据展示页面同时过滤无效数据并写入数据库,数据可导出Excel并支持分类导出 2 ...

  7. 如何在mac上創建txt文档

    文件編輯(Mac下的記事本),shift + command + T 進入純文字編輯模式!

  8. SPFile上传文件到文档库

    , dataLen);            SPSite sps = SPControl.GetContextSite(Context);            sps.AllowUnsafeUpd ...

  9. SharePoint2013 上传文件到文档库

    SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current. ...

随机推荐

  1. Java List与数组之间的转换

    http://blog.csdn.net/kingzone_2008/article/details/8444678

  2. Docker中搭建Hadoop-2.6单机伪分布式集群

    1 获取一个简单的Docker系统镜像,并建立一个容器. 1.1 这里我选择下载CentOS镜像 docker pull centos 1.2 通过docker tag命令将下载的CentOS镜像名称 ...

  3. Block与代理的使用

    本人其实是比较喜欢用Block的,因为用block写出来的代码,让我感觉代码要紧凑一些,看起来的时候,思路要清晰些,所以这估计也就是现在block将要代替代理的原因所在吧! 下面,直接进入主题: 一. ...

  4. Centos搭建Linux测试环境,几个基本的设置项

    一.添加sudo 权限 1.su - 切换至root,需要rootmim 2.修改 /etc/sudoers 的权限 chmod 644 /etc/sudoers 3.vi /etc/sudoers ...

  5. sqlSQL2008如何创建定时作业

    SQL2008如何创建定时作业?此方法也适应于Sql Server2005数据库,有兴趣的可以来看下! 1.打开[SQL Server Management Studio],在[对象资源管理器]列表中 ...

  6. 使用javamail发信过程中的一些问题及解决方法

    http://www.blogjava.net/TrampEagle/archive/2006/05/26/48326.html 今天在研究javamail发信的过程中,出现了一些小问题,现总结如下, ...

  7. 洛谷 P1029 最大公约数和最小公倍数问题 Label:Water&&非学习区警告

    题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整数 2.要求P,Q以x0为 ...

  8. Linux_CentOS6.5安装vncserver实现图形化访问

    一. 安装gnome图形化桌面 #yum groupinstall -y "X Window System" #yum groupinstall -y "Desktop& ...

  9. Linux watch 监控系统状态

    1.linux下watch命令的基本用法 # watch --helpUsage: watch [-dhntv] [--differences[=cumulative]] [--help] [--in ...

  10. Net-SNMP是线程安全的吗

    原文地址 : http://www.net-snmp.org/wiki/index.php/FAQ:General_19 Net-SNMP是线程安全的吗? 确切的说,不是.不过呢,在多线程管理的应用进 ...