如何用js实现点击按钮下载文件?
使用JavaScript原生自带的click方法就行了。
用户登录以上就是源代码,我想用javascript模拟点击”用户登录“按钮。
Javascript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直译语言。
它已经由欧洲电脑制造商协会通过ECMAScript实现语言的标准化。
它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、FireFox等)支持。
JavaScript是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。
它提供语法来操控文本、数组、日期以及正则表达式等,不支持I/O,比如网络、存储和图形等,但这些都可以由它的宿主环境提供支持。
JavaScript虽与Java有很多相似性,但这两门编程语言从设计之初就有很大的不同,JavaScript的语言设计主要受到了Self(一种基于原型的编程语言)和Scheme(一门函数式编程语言)的影响。
在语法结构上它又与C语言有很多相似(例如if条件语句、while循环、switch语句、do-while循环等)。
...
js 弹出窗下载文件 应该这么实现?
pdf.js简介PDF.js 是基于开放的 HTML5 及 JavaScript 技术实现的开源产品。
简单说就是一个 PDF 解析器。
运用HTML5JavaScript(即pdf.js仅使用安全的web语言,不包含任何攻击者可以用的本地代码块)的PDF阅读器pdf.js,直接在标准的HTML页面上载入和渲染PDF文件, 还可以提高安全性(不需要安装第三方插件,安全性由浏览器保证),浏览器所做的安全措施已经为pdf.js提供了安全的运行环境。
其对IE和 FireFox浏览器的要求是IE9+, FireFox19+。
在线示例: http://jsbin.com/pdfjs-helloworld-v2/1/edit , http://jsbin.com/pdfjs-prevnext-v2/1/edit源码:https://github.com/mozilla/pdf.js官网:http://mozilla.github.io/pdf.js/pdf.js VS 传统浏览器读取pdf一般来说,PDF档案格式都是在浏览器中由外挂程式来描绘,通常是Adobe自己的PDF reader或来自其他供应商的描绘工具,但这些外挂通常无法充分运用PDF的特点,而且由于含有大量的受信任代码,使得Google Chrome浏览器必须运用SandBox沙箱原理,来检查PDF描绘工具是否遭到未知病毒感染。
使用adobe,必须在本地安装软件才能使用,而pdf.js不依赖环境、渲染速度快(测试过,确实很快)、安全性高。
pdf.js渲染PDF文件pdf.js渲染PDF文件的流程:Fetch pdf (url / buffer) ——> canvas ——> 渲染如果要深入pdf的渲染,需要去研究pdf.js源代码。
pdf.js可通过pdf文件的地址或pdf数据流获取pdf,具体实现是调用接口函数 PDFJs.getDoc(url/buffer)将pdf载入html,通过canvas处理, 然后渲染pdf文件。
网上给出的都是通过url来获取pdf的例子,而我在做项目的时候,后台(Python)要求是发pdf的数据流给前台,前台接收pdf的buffer,然后通过pdf.js来渲染。
当然最初尝试buffer出现了很多问题,具体问题总结如下:1)如何通过$.ajax接收后台发给前台的buffer数据;2)如何将buffer传给pdf.js来处理(这里我使用了viewer.js, 所以需要考虑的是如何将buffer传给viewer.js来处理);3)如何将pdf.js转换成pdf.js可以接收的buffer格式;(对应问题解决见代码注释)注:viewer.js是pdf.js的扩展,其将打印、翻页、缩放等功能进行了实现,且界面非常好看。
也就是说如果你引入了viewer.js,pdf的渲染和渲染之后的功能界面都已经帮你实现了,你不用自己去写界面。
先从官网:http://mozilla.github.io/pdf.js/ 下载代码,然后使用文件viewer.html , 我的html就是在viewer.html 的基础上修改的,下面我给出buffer的例子: 在线预览 {% load static %}{% get_static_prefix as STATIC_URL %} //convertDataURIToBinary() //不知道什么原因如果后台直接将pdf的数据流发给前台,得到的是乱码,将数据转换成 Uint8Array始终不成功 //所以就让后台将发送之前的数据流做 了base64编码发给前台,前台再解码得到的数据就不是乱码了。
var BASE64_MARKER = ';base64,'; var preFileId = {{mark}}; //viewer.js全局变量,传入buffer,回答问题2 var DEFAULT_URL $(document).ready(function(){ $.ajax({ type:"post", async: false, //ajax接收pdf数据流,注意dataType值的设置是否有错,如果不指定,jQuery将自动根据HTTP包MIME信息返回 //responseXML或responseText . 回答问题1 contentType:"application/pdf;charset=utf-8", url:"{% url netPan.File.views.browserFuf%}", data:{ id: preFileId }, success:function(data){ var pdfAsDataUri = data; //如果引入了viewer.js , 处理方法 var pdfAsArray = convertDataURIToBinary(pdfAsDataUri); DEFAULT_URL = pdfAsArray; // 只引入了pdf.js, 未引入viewer.js, 处理方法 // var pdfAsArray = convertDataURIToBinary(pdfAsDataUri); // PDFJS.getDocument(pdfAsArray).then(); 自己写pdf的处理函数 } }); });function convertDataURIToBinary(dataURI) { //编码转换,回答问题3 var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length; var base64 = dataURI.substring(base64Ind...
【js特效下载】下载的js特效如何使用?
1-apache的POI,此方法对Excel的导出做的很好,目前对Word的导出方面的功能尚未完全。
2-纯JavaScript脚本实现。
主要通过客户端调用本机Office组件来实现。
3-在JSP页面引入头文件实现。
纯JavaScript脚本实现细节方面大体是创建一个word组件ActiveXObject('Word.Application'),用js通过表ID取得表内容然后保存到word,要注意的是js实现有很多不好的地方,例如Internet选项需要把ActiveX空间全部启用,安全级别设置为中。
这样的话岂不是每台机器都要配置一下。
其次每次生成word文档以后弹出对话框(无法保存此文件,因为它已在别处打开(C:\...\STARTUP\Powerword.dot)),出现此问题就需要把C:\Documents and Settings\当前用户名\Application Data\Microsoft\Word\STARTUP下的Powerword.dot文件删除,每次遇到此问题就需要删除文件来解决,十分不方便。
JSP页面引入来实现Word保存就方便多了,但是也有不足的地方,首先如果需要引入如果需要下载的话就引入其实如果大家用框架做就方便多了,比如Struts2。
在Action里直接写如下代码:if(out!=null){String fileName="";fileName+="评价报告.doc";try {HttpServletResponse response = ServletActionContext.getResponse();response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("GB2312"), "8859_1"));} catch (UnsupportedEncodingException e) {e.printStackTrace();}out是jsp页面表单元素,一个button,用于提交表单到相应Action进行Word下载。
Action设置jsp页面头文件。
这样每次点击button就可以把相应jsp页面的内容保存到Word中并且支持下载,Word中内容并且是可编辑状态。
不足的地方在于由于表内容是动态生成,有的需要先查看在下载Word,就需要另外建立一个新JSP页面进行Word下载,当然首先要在struts.xml里配置好页面转向。
新建立的页面传值同查看页面要保持一样。
转载请注明出处51数据库 » js实现word文件下载
厷宔乄