如何查找涉及PDF's,然后在链接的前面附加一个绝对路径

How can I locate links involving PDF's on an html page and then append the front of the link with an absolute path?

本文关键字:链接 前面 一个 路径 查找 何查找 PDF 然后      更新时间:2023-09-26

我有一个html页面,上面有很多链接。其中一些链接连接到.pdf。

有可能在加载页面时编写javascript吗-

  • 它扫描html文件并找到所有链接到.pdf 的链接

  • 然后在url的前面添加一个硬编码的前端?

页面上的所有链接都是相对的,当这些.pdf链接出现在安卓平板电脑上时,我遇到了问题。但当我使用绝对路径时,它处理它没有问题。所以我只想把绝对路径附加到.pdf链接上。

如果你使用jQuery,这里有一个简单的方法来选择所有这些链接:

$('a[href$=".pdf"]').each(function() {
    this.href = 'YOUR URL HERE' + this.href;
});

href是一个属性选择器,$=意味着它搜索以给定值结尾的属性,即".pdf"。

如果你不想使用jQuery,你可以用标准的JavaScript来做,比如:

var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
    if (links[i].href.substr(links[i].href.length - 4) == '.pdf') {
        links[i].href = 'YOUR URL HERE' + links[i].href;
    }
}

与voithos相同,但没有jQuery:

var links=document.links; //Get all links in the document
for (var i=0;i<links.length;i++) { //Loop through each link
    thisHrefExt=links[i].href.split("."); //Split target at all periods
    thisHrefExt=thisHrefExt[thisHrefExt.length-1]; //Select the last section, which should be the extension
    if (thisHrefExt.toLowerCase()=="pdf") { //If the extension is "pdf" (case insensitive)...
        links[i].href="hard-coded-front-end"+links[i].href; //...Add your hard-coded bit at the beginning
    }
}

功能形式:

function changePDFLinks() {
    var links=document.links; //Get all links in the document
    for (var i=0;i<links.length;i++) { //Loop through each link
        thisHrefExt=links[i].href.split("."); //Split target at all periods
        thisHrefExt=thisHrefExt[thisHrefExt.length-1]; //Select the last section, which should be the extension
        if (thisHrefExt.toLowerCase()=="pdf") { //If the extension is "pdf" (case insensitive)...
            links[i].href="hard-coded-front-end"+links[i].href; //...Add your hard-coded bit at the beginning
        }
    }
}

有了这个功能,你可以做这样的事情:

window.onload=changePDFLinks;

这将在页面加载时修复您的PDF链接。