从网页的特定div / table元素中的链接下载所有pdf

时间:2016-11-19 19:08:36

标签: javascript html pdf download

我有一些链接到网页内的表格中给出的PDF,我想通过javascript下载所有这些,我该怎么办?

编辑:

显然,我在这里有一个网页,我只是在浏览器中查看它,我想做一些javascript,它会自动dwonloads特定表格内的所有PDF,这就是全部。

4 个答案:

答案 0 :(得分:4)

假设您的pdf链接包含在具有<a>属性的href标记中。你可以这样做。

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 viewer。此外,如果要下载的pdfs数量很大,请在连续下载之间添加一些timeInterval。我希望这有帮助

答案 1 :(得分:3)

最后,我有办法正确完成任务,如果您想进一步了解,请查看我的fiddle。此脚本会根据我之前的问题自动执行所有操作,并强制执行pdf下载而不会禁用查看器。

代码:

<html>
<head>
    <title>ADDITION OF 2 NOS</title>
    <script type="text/javascript">

    function add() {
        var x=document.getElementById("value1").value;
        var y=document.getElementById("value2").value;
        var z=x+y;
        document.getElementById("result").innerHTML=z;
    }

    </script>
</head>
<body>
    <center>
        <form name="form1" id="form1_id">
            ENTER NO 1 : <input type="text" name="value1" id="value1"><br>
            ENTER NO 2 : <input type="text" name="value2" id="value2"><br>
            <input type="submit" value="SUBMIT" onclick="add()">
            <p id="result"></p>
        </form>
    </center>
</body>
</html>

无论如何,谢谢你们帮助

答案 2 :(得分:1)

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

答案 3 :(得分:1)

在数据下方创建一个按钮以单击它。点击所有pdf文件将开始下载。

  

请确保您的浏览器限制多次下载。   在Chrome中点击你必须制作的全部下载按钮   确保在弹出窗口拦截器中单击允许,该窗口将显示在   地址栏的右侧

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>