项目背景

针对用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. <meta>元素

    HTML <meta> 元素 meta标签描述了一些基本的元数据. <meta> 标签提供了元数据.元数据也不显示在页面上,但会被浏览器解析. META元素通常用于指定网页的描 ...

  2. jquery笔记(基础知识)

    最近在学jquery,做点小笔记 语法: $(this).hide() - 隐藏当前元素 $("p").hide() - 隐藏所有 <p> 元素 $("p . ...

  3. C# 词法分析器(三)正则表达式

    系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 正则表达式是一种描述词素的重要表示方法.虽然正则表达 ...

  4. CF# 334 Moodular Arithmetic

    B. Moodular Arithmetic time limit per test 1 second memory limit per test 256 megabytes input standa ...

  5. BZOJ4699 : 树上的最短路

    这道题主要是要解决以下两个问题: 问题1: 给定一个点$x$,如何取出所有经过它的下水道? 一条下水道经过$x$等价于它起点在$x$的子树里面且终点不在$x$的子树里面,或者两端点的lca就是$x$. ...

  6. ACM 房间安排

    房间安排 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 2010年上海世界博览会(Expo2010),是第41届世界博览会.于2010年5月1日至10月31日期间, ...

  7. POJ 1474 Video Surveillance(半平面交)

    题目链接 2Y,模版抄错了一点. #include <cstdio> #include <cstring> #include <string> #include & ...

  8. IOS开发常用设计模式

    IOS开发常用设计模式 说起设计模式,感觉自己把握不了笔头,所以单拿出iOS开发中的几种常用设计模式谈一下. 单例模式(Singleton) 概念:整个应用或系统只能有该类的一个实例 在iOS开发我们 ...

  9. Notification Once

    Notification Once 前段时间整理项目中的AppDelegate,发现很多写在- application:didFinishLaunchingWithOptions:中的代码都只是为了在 ...

  10. 选择Nodejs的N个理由

    选择Nodejs的N个理由 作者 马德奎 发布于 2014年9月25日 Caleb Madrigal是 来自美国密尔沃基市的一名软件顾问.四年前,他在听说“将JavaScript用作服务器端语言”这样 ...