如何用JavaScript批量打开标签页?控制台批量打开网页超链接方法
当然可以搞定!我经常用浏览器控制台来做这种批量操作,给你分享几个实用的方案:
方案1:基础版 - 打开所有超链接
直接打开浏览器控制台(按F12或Ctrl+Shift+I唤起,切换到Console标签),输入以下代码并回车:
// 抓取页面上所有<a>标签元素 const links = document.querySelectorAll('a'); // 逐个在新标签页打开有效链接 links.forEach(link => { // 跳过无href属性或无效的链接(比如锚点、javascript伪链接) if (link.href && !link.href.startsWith('#') && !link.href.startsWith('javascript:')) { window.open(link.href, '_blank'); } });
小提示:第一次执行时浏览器大概率会拦截批量弹窗,记得点击地址栏旁的弹窗提示,允许当前网站的弹窗权限哦。
方案2:进阶版 - 过滤特定链接
如果你不想打开所有链接,只想筛选符合条件的(比如同域名链接、包含特定关键词的链接),可以用下面的代码:
// 示例1:仅打开当前域名下的站内链接 const currentDomain = window.location.hostname; const links = document.querySelectorAll('a'); links.forEach(link => { if (link.href && link.hostname === currentDomain) { window.open(link.href, '_blank'); } }); // ------------------------------ // 示例2:仅打开href包含"article"关键词的链接 // const links = document.querySelectorAll('a'); // links.forEach(link => { // if (link.href && link.href.includes('article')) { // window.open(link.href, '_blank'); // } // });
你可以根据需求修改判断条件,比如用link.href.startsWith('https://your-site.com')指定特定域名,或者用正则表达式匹配更复杂的规则。
方案3:优化版 - 去重后打开链接
如果页面存在重复的超链接(比如多个元素指向同一个URL),可以先去重再打开,避免重复标签页:
const links = document.querySelectorAll('a'); const uniqueUrls = new Set(); // 先收集所有唯一的有效链接 links.forEach(link => { if (link.href && !link.href.startsWith('#') && !link.href.startsWith('javascript:')) { uniqueUrls.add(link.href); } }); // 打开去重后的链接 uniqueUrls.forEach(url => { window.open(url, '_blank'); });
额外注意事项
- 部分网站的链接可能通过
onclick事件跳转(而非直接写在href里),这种情况上面的代码可能无法捕获,需要针对性调整逻辑(比如触发点击事件)。 - 尽量在自己信任的网站上使用这段代码,避免恶意页面的潜在风险。
内容的提问来源于stack exchange,提问作者Marcos Robles




