Chrome Extension Ajax & downloads【谷歌浏览器扩展之Ajax和下载】
来源:互联网 发布:手机下软件赚钱的软件 编辑:程序博客网 时间:2024/06/12 22:16
在扩展内使用 Ajax 可引入 jQuery 库。
下载使用 chrome.downloads API,此 API 只能在 background 中使用,content_scripts 中使用会报错。所以在 content_scripts 中获取到要下载的资源后,通过消息(chrome.runtime.sendMessage() API)发送给 background 进行下载。
使用 downloads API 需要在 manifest 文件配置 permissions :
"permissions": ["downloads","storage"],
这段是从另外的应用里摘出来的
/* 0 - (未初始化)还没有调用send()方法 1 - (载入)已调用send()方法,正在发送请求 2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 3 - (交互)正在解析响应内容 4 - (完成)响应内容解析完成,可以在客户端调用了 @see https://xhr.spec.whatwg.org/ */function ajaxRequest(curhost, rurl, isFinished){var xhr = new XMLHttpRequest();xhr.onreadystatechange = function (){if(xhr.readyState == 1) {//alert( '请稍等正在刷新...' );}if (xhr.readyState == 2) {if(isFinished == 'ok'){//通知重载页面flushFinished();return '';}else{ajaxRequest(curhost, rurl, 'ok');}}};xhr.open("GET",curhost + rurl + id, true);xhr.send();}
下载调用的 API :
chrome.downloads.download({url: url,filename: filename,conflictAction: 'uniquify',saveAs: false},function(res){});
自己封装后,配合选项页使用:
//保存文件方式var _ex_save_conflict = 'overwrite';chrome.storage.local.get('_ex_favpicture_likename', function(valueArray) {if( valueArray._ex_favpicture_likename ){if( valueArray._ex_favpicture_likename == 'prompt' || valueArray._ex_favpicture_likename == 'uniquify' ){_ex_save_conflict = valueArray._ex_favpicture_likename;}}});//保存图片/*{ url: 下载文件的url, filename: 保存的文件名, conflictAction: 重名文件的处理方式,uniquify 括号防重,overwrite 覆盖,prompt 弹窗让用户决定 saveAs: 是否弹出另存为窗口, method: 请求方式(POST或GET), headers: 自定义header数组, body: POST的数据}*/function _exSavePicture(url, filename){chrome.downloads.download({url: url,filename: filename,conflictAction: _ex_save_conflict,saveAs: false}, function(res){ });}
每次调用下载是单文件的,所以一组数据/对象 要循环调用。
阅读全文
0 0
- Chrome Extension Ajax & downloads【谷歌浏览器扩展之Ajax和下载】
- Chrome Extension manifest【谷歌浏览器扩展之配置】
- Chrome Extension options_page & storage【谷歌浏览器扩展之选项页和storage】
- Chrome Extension sendMessage & sendRequest【谷歌浏览器扩展之消息通信】
- Chrome Extension notifications【谷歌浏览器扩展之弹窗通知】
- 下载谷歌浏览器(Chrome)扩展crx文件
- 最新版chrome谷歌浏览器Ajax跨域调试问题
- 基于ASP.NET Webapi和ajax技术且兼容Chrome、Firefox和IE浏览器的Excel文件下载方法
- Ajax体验1:Google浏览器之星Chrome冉冉升起
- Chrome 浏览器 extension 指南
- 下载谷歌浏览器(Chrome)扩展离线安装包crx文件最简单的方法:
- 谷歌浏览器chrome插件、扩展程序无法下载的解决方法:
- 下载谷歌浏览器(Chrome)扩展crx文件最简单的方法~
- 下载谷歌浏览器(Chrome)扩展离线安装包crx文件最简单的方法
- Axure谷歌浏览器Chrome扩展程序下载及安装方法
- Axure谷歌浏览器Chrome扩展程序下载及安装方法
- Chrome浏览器未受理ajax请求
- chrome浏览器支持ajax请求本地文件
- apache2 正向代理和反向代理
- Dijkstra算法(最短距离)
- Javascript入门
- SVN和Git的 区别
- 事件分发机制
- Chrome Extension Ajax & downloads【谷歌浏览器扩展之Ajax和下载】
- 某公司笔试题:约翰要经过多少水果摊才能到学校?
- Js中注意事项
- 洛谷P3374 树状数组
- web常见的搭建及管理后台访问
- Prim算法的JAVA实现
- c/c++ 后台开发常用组件之:c++日志模块
- Android的UI美化
- [PS教程]怎么用PS将图片印章的背景变透明