浏览器pdf文件预览的相关问题
2016-06-29 19:14
483 查看
firefox和chrome浏览器可以直接预览是因为自身带了pdf阅读器插件,而ie和safari浏览器默认下载,需安装插件才能在浏览器中预览。
1、加了PDFObject插件,该插件只是给页面加了<embed>元素,如何浏览器不支持embedded PDFs,PDFObject插件是不能够迫使浏览器实现在线预览。如果需要支持,可以用PDF.js插件。
2、访问的pdf文件是阿里云上的地址,在所有的浏览器里都默认下载,因为http请求的相应头Content-Type的值是application/octet-stream(二进制流),浏览器无法识别pdf文件,解决办法是服务端访问阿里云地址,下载后直接将流数据传给前端,修改相应头信息Content-Type:application/pdf,Accept-Ranges:bytes
js代码如下:
//查看电子申请表
function checkselftel2_applyform_show(){
$.post(checkselftel2_g_url.pdfpreview,{"id":checkselftel2_userid,"orderType":"03"},function(data){
if(data.success){
var url=data.result.userSignfileUrl;//获取阿里云pdf的url
if(url){
$.post(checkselftel2_g_url.pdfdream+"?fileurl="+url,{},function(data){//获取服务端返回的流数据
if(data){//有返回
//调用PDFObject插件
var myPDF = PDFObject.embed(checkselftel2_g_url.pdfdream+"?fileurl="+url, "#checkselftel2_pdf_object");
$("#checkselftel2_pdf_out").dialog({
title:"查看电子申请表",
width:800
})
}else{//无返回(包括url地址不存在,请求超时,异常)
$.longhz.alert("获取电子申请表异常");
}
})
}else{
$.longhz.alert("暂无电子申请表");
}
}else{
$.longhz.alert(data.msg);
}
})
}
1、加了PDFObject插件,该插件只是给页面加了<embed>元素,如何浏览器不支持embedded PDFs,PDFObject插件是不能够迫使浏览器实现在线预览。如果需要支持,可以用PDF.js插件。
2、访问的pdf文件是阿里云上的地址,在所有的浏览器里都默认下载,因为http请求的相应头Content-Type的值是application/octet-stream(二进制流),浏览器无法识别pdf文件,解决办法是服务端访问阿里云地址,下载后直接将流数据传给前端,修改相应头信息Content-Type:application/pdf,Accept-Ranges:bytes
js代码如下:
//查看电子申请表
function checkselftel2_applyform_show(){
$.post(checkselftel2_g_url.pdfpreview,{"id":checkselftel2_userid,"orderType":"03"},function(data){
if(data.success){
var url=data.result.userSignfileUrl;//获取阿里云pdf的url
if(url){
$.post(checkselftel2_g_url.pdfdream+"?fileurl="+url,{},function(data){//获取服务端返回的流数据
if(data){//有返回
//调用PDFObject插件
var myPDF = PDFObject.embed(checkselftel2_g_url.pdfdream+"?fileurl="+url, "#checkselftel2_pdf_object");
$("#checkselftel2_pdf_out").dialog({
title:"查看电子申请表",
width:800
})
}else{//无返回(包括url地址不存在,请求超时,异常)
$.longhz.alert("获取电子申请表异常");
}
})
}else{
$.longhz.alert("暂无电子申请表");
}
}else{
$.longhz.alert(data.msg);
}
})
}
相关文章推荐
- html5 web数据存储
- SEO
- 异步流程控制:7 行代码学会 co 模块
- [译] React 入门
- 如何优雅处理前端异常?
- 自己动手开发jQuery插件教程
- 不定义JQuery插件 不要说会JQuery
- 前端jquery部分很精彩
- 深入探讨前端框架react
- Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
- 20款超赞的jQuery插件 Web开发人员必备
- jQuery插件Tmpl的简单使用方法
- jQuery实现图片渐入渐出切换展示效果
- 精选的10款用于构建良好易用性网站的jQuery插件
- Web开发者必备的12款超赞jQuery插件
- 自编jQuery插件实现模拟alert和confirm
- HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
- jquery插件珍藏(图片局部放大/信息提示框)
- 2013年优秀jQuery插件整理小结