问题解决(一)在ipad上通过safari浏览文档
项目背景
针对用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浏览文档的更多相关文章
- JAVA:借用OpenOffice将上传的Word文档转换成Html格式
		为什么会想起来将上传的word文档转换成html格式呢?设想,如果一个系统需要发布在页面的文章都是来自word文档,一般会执行下面的流程:使用word打开文档,Ctrl+A,进入发布文章页面,Ctrl ... 
- 配置允许匿名用户登录访问vsftpd服务,进行文档的上传下载、文档的新建删除等操作
		centos7环境下 临时关闭防火墙 #systemctl stop firewalld 临时关闭selinux #setenforce 0 安装ftp服务 #yum install vsftpd - ... 
- pdfFactory如何设置限制打印和浏览文档权限
		当我们进行私密文件的分享时,除了要设置密码保护文件内容外,还要注意设置打印限制,防止他人利用打印的方式,进行纸质文件的传播. 在使用pdfFactory安全策略时,我们可以通过设定禁止打印的方式,完全 ... 
- 五分钟轻松搞定产品需求文档!这可能史上最全PRD文档模板
		本文由 @JustWu 原创发布于社区 为什么写这篇文章? 第一:写PMCAFF的PRD文档,大家都是用户,比较好参考与理解,方便大家来找我写的不好的地方. 第二:我在自学PRD文档的编写过程中,总 ... 
- .net core webapi 文件上传在 Swagger 文档中的有好提示处理
		前提: 需要nuget Swashbuckle.AspNetCore 我暂时用的是 4.01 最新版本: 描述:解决 .net core webapi 上传文件使用的是 IFormFile,在S ... 
- C#实现上传/下载Excel文档
		要求 环境信息:WIN2008SERVER 开发工具:VS2015 开发语言:C# 要求: 1.点击同步数据后接口获取数据展示页面同时过滤无效数据并写入数据库,数据可导出Excel并支持分类导出 2 ... 
- 如何在mac上創建txt文档
		文件編輯(Mac下的記事本),shift + command + T 進入純文字編輯模式! 
- SPFile上传文件到文档库
		, dataLen); SPSite sps = SPControl.GetContextSite(Context); sps.AllowUnsafeUpd ... 
- SharePoint2013 上传文件到文档库
		SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite(SPContext.Current. ... 
随机推荐
- rman归档删除
			rman: delete [all] input 数据库oracle 11g 全备脚本如下:rman target / <<EOFrun {allocate channel t1 typ ... 
- iOS KVC valueForKeyPath学习心得
			#import <Foundation/Foundation.h> @interface myClass1 : NSObject @property (nonatomic, copy) N ... 
- HTML元素的属性
			HTML元素的属性,每个元素都有多个属性值 <p>段落标记</p> <font size=“”>字体大小标记</font>size取值1-7 <h ... 
- ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 D. Delay Time
			Problem D. Delay Time Input file: standard input Output file: standard output Time limit: 1 second M ... 
- Python: 常用list, string处理功能
			#1. keep strings in double quote as one word when split string to words #e.g. str = ‘a b "is si ... 
- Linux下统计高速网络中的流量
			netpps.sh统计每秒数据量,包含接收(RX)或发送(TX) netpps.sh eth0 #!/bin/bash INTERVAL=" # update interval in sec ... 
- BZOJ3559 : [Ctsc2014]图的分割
			考试的时候看少了一行,导致暴力都写错额… 贾教说他出的这题水,但是我觉得并不水,那个结论还是很神的. 首先M(i)就是i的最小生成树的最大边, 设f[i]表示i属于哪个集合 我们把边按权值从小到大排序 ... 
- node.js 调用天气webservice接口
			首先安装soap模块 npm install soap 1 2 3 4 5 6 7 8 9 10 var soap = require('soap'); var url = 'http://w ... 
- jQuery Ajax遍历表格,填充数据,将表格中的数据一条一条拼成Jason数组
			$.ajax({ url: baseURL + "InvoiceSale/OnQuotaInvoiceSale", //点击核销单号时,点击核销时,交互的页面 ... 
- js的隐含参数(arguments,callee,caller)使用方法
			在提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments arguments 该对象代表正在执行的函数和调用它的函数的参数.[function.]arguments[ ... 
