动手写一个简易的文档下载Chrome插件
2017-05-18 22:01
525 查看
参考官网:https://developer.chrome.com/extensions/getstarted
要做的事情:获取当前页面所有文档的下载链接,并生成列表提供下载功能。
实现的思路:获取所有
插件使用Angularjs及Bootstrap框架。
popup.html
popup.js
dom.js
示例网页内容:
效果:
项目地址:https://github.com/YiNanKai/chrome-extension-download-helper
要做的事情:获取当前页面所有文档的下载链接,并生成列表提供下载功能。
实现的思路:获取所有
hre属性值后缀为指定文档格式的
a标签,并保存结果,弹出框提供文档格式筛选及下载功能。
插件使用Angularjs及Bootstrap框架。
popup.html
<body ng-controller="ctrl"> <div id="status"></div> <div id="filter"> <label class="checkbox-inline"> <input ng-change="checkBoxChange()" name="docType" type="checkbox" id="inlineCheckbox1" ng-value="pdf" ng-model="selectedType.pdf">pdf </label> <label class="checkbox-inline"> <input ng-change="checkBoxChange()" name="docType" type="checkbox" id="inlineCheckbox2" ng-value="docx" ng-model="selectedType.docx">docx </label> <label class="checkbox-inline"> <input ng-change="checkBoxChange()" name="docType" type="checkbox" id="inlineCheckbox3" ng-value="ppt" ng-model="selectedType.ppt">ppt </label> </div> <div id="result"> <div ng-repeat="item in results track by $index" ng-show="selectedType[item.type]"> {{item.text}} <a ng-href="{{item.url}}" target="_blank">Download</a> </div> <div ng-if = "results.length == 0"> <i>Not Found</i> </div> </div> </body>
popup.js
angular.module("app", []) .controller("ctrl", function ($scope) { $scope.selectedType = { "ppt": true, "docx": true, "pdf": true }; function isSelectedType(type) { return $scope.selectedType[type]; } $scope.checkBoxChange = function () { var res = allResults.filter(function (data, index) { return $scope.selectedType[data.type]; }) $scope.results = res; $scope.$apply(); } var allResults; chrome.tabs.query({ active: true }, function (tabs) { var tab = tabs[0]; tab_title = tab.title; chrome.tabs.executeScript(tab.id, { file: 'dom.js' }, function () { chrome.tabs.sendRequest(tab.id, { type: "pdf, ppt" }, function (results) { allResults = results; $scope.results = results; $scope.$apply(); }); }); }); })
dom.js
function getLinks(r, s) { var links = document.querySelectorAll("a"); var results = []; var seenLinks = {}; for (var i = 0; i < links.length; i++) { if (links[i].href.indexOf(".pdf") !== -1 || links[i].href.indexOf(".docx") !== -1 || links[i].href.indexOf(".ppt") !== -1) { var type = ""; if (links[i].href.indexOf(".pdf") !== -1) { type = "pdf"; } else if (links[i].href.indexOf(".docx") !== -1) { type = "docx"; } else if (links[i].href.indexOf(".ppt") !== -1) { type = "ppt"; } var obj = {}; obj.url = links[i].href; obj.type = type; obj.text = links[i].innerHTML; results.push(obj); } } return results; }; chrome.extension.onRequest.addListener(function (request, sender, sendResponse) { sendResponse(getLinks(request, sender)); });
示例网页内容:
<a href="test1.pdf">test1.pdf</a> <a href="test2.pdf">test2.pdf</a> <a href="正则表达式30分钟入门教程.pdf">正则表达式30分钟入门教程.pdf</a> <a href="test3.zip">test3.zip</a> <a href="test3.docx">test3.docx</a> <a href="test3.ppt">test3.ppt</a> <a href="test3.text">test3.text</a>
效果:
项目地址:https://github.com/YiNanKai/chrome-extension-download-helper
相关文章推荐
- 一个简易的网页爬虫,可用于下载在线API文档
- Chrome的Awesome Screenshot的插件离线下载
- Chrome 插件下载及安装
- 添加Chrome插件(Github上下载的压缩文件)
- 开发一个chrome小插件
- Postman-REST-Client_v0.8.1之chrome插件下载
- 全网最详细的如何在谷歌浏览器里正确下载并安装Postman【一款功能强大的网页调试与发送网页HTTP请求的Chrome插件】(图文详解)
- 【chrome 插件一】开发一个简单chrome浏览器插件
- 推荐一个安卓开发用得到的Chrome插件
- 分享一个Chrome内核浏览器下比较好用的去视频广告插件
- Cacti文档下载(linux/windows Cacti安装、cacti模板、cacti插件)
- 用chrome插件下载文件,并自定义文件名
- 一个sublime text2/text3的自动添加文档首部的插件:FileHeader
- chrome插件离线包下载
- 做了一个ok.etao.com的chrome插件
- 如何编写Firefox浏览器插件,一个下载百度空间所有文章的插件
- VVDocumenter-Xcode 是一个 Xcode 插件,可以帮你轻松的编写 Javadoc 风格的文档。moban
- 珍爱生命 谨慎下载Chrome插件Bookmark Manager ,附Bookmark Manager卸载方法
- 30多个便于下载图片、视频及文档的FireFox插件