2016-11-19 186 views
-1

我有些链接到一个表中给出一个网页,我想通过javascript来下载所有的人里面的PDF文件,我该怎么办的具体DIV /表元素?下载链接从所有的PDF在网页中

编辑:

讲清楚,我有一个网页在这里,我只是看它在浏览器中,我想要做一些JavaScript,它会自动dwonloads所有PDF特定的表内,这就是全部。

+0

你可以给网站的网址。所以它会很容易写脚本 – jafarbtech

回答

0

有与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"); 
} 
2

假设您的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。我希望这有助于

2

那么最后我有我的方式做正确的任务,看到我,如果你想在它看得更远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(); 
})(); 

无论如何谢谢你为你们帮助

+0

如果你已经完成了,那么为什么要问? – kumardeepakr3

+1

我问了,因为我发现不知道如何实现结果,但是当我搜索并合并了多个SO问题时,我发现它,所以我自己做了一个。无论如何非常感谢您的帮助。 –

1

下面创建您的数据的按钮点击它。点击所有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>