JavaScript 拼接百度网盘链接

有时在网页中,看到别人分享百度网盘链接。一般情况下,我点击链接之后,还需要输入提取码,才可以看到别人分享的文件。

我觉得应该可以通过代码,来减少一些步骤。举个例子,例如现在有这样的链接和提取码

https://pan.baidu.com/s/powersee_xxxx

提取码: psee

那么只需要把链接改为 https://pan.baidu.com/s/powersee_xxxx?pwd=psee 就不需要手动输出提取码了。就是在原本链接后面加上「?pwd=提取码」。

使用这样的代码可以实现:

const link_area = document.querySelector('.link_area');

let d_link = link_area.getElementsByTagName('a')[0];

let link_key = link_area.innerText.match('提取码: (....)')[1]

d_link.target='_blank';
d_link.href += '?pwd=' + link_key

不过这样只能处理第一个链接。怎么修改代码让它可以处理多个链接?

思路:先查找到所有链接,再查找所有 「提取码」 ,只有再使用 for 循环遍历处理链接。最终代码如下:

const link_area = document.querySelector('.link_area');

const d_link = link_area.querySelectorAll('a');

const link_key = link_area.innerText.match(/提取码: (....)/g)

for (let i = 0; i < d_link.length; i++) {
d_link[i].target='_blank';
d_link[i].href += '?pwd=' + link_key[i].replace('提取码: ', '');
}

获取提取码部分比较麻烦,最终采用 replace 去掉多余的文字。