我有些链接到一个表中给出一个网页,我想通过javascript来下载所有的人里面的PDF文件,我该怎么办的具体DIV /表元素?下载链接从所有的PDF在网页中
编辑:
讲清楚,我有一个网页在这里,我只是看它在浏览器中,我想要做一些JavaScript,它会自动dwonloads所有PDF特定的表内,这就是全部。
我有些链接到一个表中给出一个网页,我想通过javascript来下载所有的人里面的PDF文件,我该怎么办的具体DIV /表元素?下载链接从所有的PDF在网页中
编辑:
讲清楚,我有一个网页在这里,我只是看它在浏览器中,我想要做一些JavaScript,它会自动dwonloads所有PDF特定的表内,这就是全部。
有与JavaScript
一个简单的解决方案HTML:
<button id="download" name="download" type="button" onclick="download()">Some Text</button>
的JavaScript:
function download() {
window.open("file_1.txt");
window.open("file_2.txt");
}
假设您的PDF链接被封装在具有href
属性<a>
标签。你可以做这样的事情。
var links = document.getElementsByTagName('a');
// Do this selection based on your table
for(var count=0; count<links.length; count++) {
var url = links[count].getAttribute('href');
if(url && url.endsWith('.pdf')) {
links[count].dispatchEvent(new MouseEvent('click'));
}
}
对于浏览器本身不打开PDF您将在浏览器中禁用它。对于chrome,请转至chrome://plugins
并禁用PDF查看器。另外,如果要下载的pdf数量很大,请在连续下载之间添加一些timeInterval。我希望这有助于
那么最后我有我的方式做正确的任务,看到我,如果你想在它看得更远fiddle。这个脚本会自动完成我以前的问题所要求的一切,并且它会强制下载PDF而不禁用查看器。
代码:
(function(ElementTypeToDownload, DownloadFromWhere) {
// from http://stackoverflow.com/questions/3077242/force-download-a-pdf-link-using-javascript-ajax-jquery and http://stackoverflow.com/questions/16611497/how-can-i-get-the-name-of-an-html-page-in-javascript
// Anonymous "self-invoking" function
if (!(typeof jQuery === 'function')) {
(function() {
var startingTime = new Date().getTime();
// Load the script
var script = document.createElement("SCRIPT");
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
script.type = 'text/javascript';
document.getElementsByTagName("head")[0].appendChild(script);
// Poll for jQuery to come into existance
var checkReady = function(callback) {
if (window.jQuery) {
callback(jQuery);
} else {
window.setTimeout(function() {
checkReady(callback);
}, 20);
}
};
// Start polling...
checkReady(function($) {
$(function() {
var endingTime = new Date().getTime();
var tookTime = endingTime - startingTime;
});
});
})();
}
// http://facebook.com/anders.tornblad
// [email protected]
// from http://stackoverflow.com/questions/3077242/force-download-a-pdf-link-using-javascript-ajax-jquery
function SaveToDisk(fileURL, fileName) {
// for non-IE
if (!window.ActiveXObject) {
var save = document.createElement('a');
save.href = fileURL;
save.target = '_blank';
save.download = fileName || fileURL.split("/").pop() || 'unknown';
var evt = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': false
});
save.dispatchEvent(evt);
(window.URL || window.webkitURL).revokeObjectURL(save.href);
}
// for IE < 11
else if (!!window.ActiveXObject && document.execCommand) {
var _window = window.open(fileURL, '_blank');
_window.document.close();
_window.document.execCommand('SaveAs', true, fileName || fileURL)
_window.close();
}
}
// from http://stackoverflow.com/questions/4623982/test-if-jquery-is-loaded-not-using-the-document-ready-event
function preInit() {
// wait until jquery is loeaded
if (!(typeof jQuery === 'function')) {
window.setTimeout(function() {
//console.log(count++);
preInit();
}, 10); // Try again every 10 ms..
return;
}
$(ElementTypeToDownload || prompt("Enter the type of element you are going to download, e.g. 'a' for link, 'img' or 'image' for images (do not add quotes, deafult is 'a') ") || 'a', DownloadFromWhere || prompt("jQuery Selector for the place that you want to download content from, e.g. '#DivName', '.ClassName', 'TagName', body by deafult") || 'body').each(function() {
var tag = (ElementTypeToDownload == 'img' || ElementTypeToDownload == 'image') ? 'src' : 'href';
SaveToDisk($(this).attr(tag));
});
}
preInit();
})();
无论如何谢谢你为你们帮助
如果你已经完成了,那么为什么要问? – kumardeepakr3
我问了,因为我发现不知道如何实现结果,但是当我搜索并合并了多个SO问题时,我发现它,所以我自己做了一个。无论如何非常感谢您的帮助。 –
下面创建您的数据的按钮点击它。点击所有pdf文件将开始下载。
请确保多个下载您的浏览器限制。 铬一旦你下载点击所有的按钮,你必须做出 确保您单击允许将在 中给出的弹出窗口拦截器地址栏右侧的
function clickall(){
var pdfs = document.getElementsByClassName('mydata')[0].getElementsByTagName('a');
for(var i=0; i<pdfs.length; i++) {
pdfs[i].setAttribute("download", "download");
pdfs[i].click();
}
}
function excuteDomReadyCallBacks(){
var mydata=document.getElementsByClassName('mydata')[0];
var element = document.createElement('button');
element.onclick = 'clickall()';
element.value = 'download all';
element.type = 'button';
mydata[0].parent.insertAfter(element, mydata);
}
document.addEventListener('DOMContentLoaded', function() {
excuteDomReadyCallBacks();
//.. do stuff ..
}, false);
<table class="mydata">
<tbody>
<tr>
<td><b>Name</b></td>
<td><b>City</b></td>
<td><b>State</b></td>
</tr>
<tr>
<td>Greater Noida Cricket Stadium</td>
<td>Greater Noida</td>
<td>
<a href="http://static.sportskeeda.com/wp-content/uploads/2016/08/hero-isl-2016-fixtures-1472219010.pdf">test2</a>
</td>
</tr>
<tr>
<td> Buddh International Circuit</td>
<td>Greater Noida</td>
<td>
<a href="/test2.pdf">test2</a>
</td>
</tr>
<tr>
<td> Buddh International Circuit</td>
<td>Greater Noida</td>
<td>
<a href="http://www.omri.org/sites/default/files/opl_pdf/CompleteCompany-NOP.pdf">test2</a>
</td>
</tr>
</tbody>
</table>
你可以给网站的网址。所以它会很容易写脚本 – jafarbtech