如何用JavaScript在新标签页打开含特定链接的所有链接?代码仅打开首个
批量打开包含特定域名链接的问题解决
问题原因
你的代码只打开第一个链接,是因为浏览器的弹窗拦截机制:非用户主动触发的批量弹窗会被判定为广告类自动行为,浏览器仅允许第一个弹窗通过,后续请求都会被拦截。
可行解决方案
方法1:绑定用户交互触发(推荐,无需修改浏览器设置)
将代码改为需要用户点击页面后执行,让浏览器识别为用户主动操作,避免拦截:
// 先把这段代码粘贴到控制台执行 document.addEventListener('click', function() { const links = document.getElementsByTagName('a'); for (let i = 0, l = links.length; i < l; i++) { const link = links[i]; if (link.href.includes('test.com')) { console.log(link); window.open(link.href, '_blank'); } } }, { once: true }); // 执行完成后,点击页面任意位置,所有符合条件的链接就会批量打开
{ once: true }参数确保点击事件仅触发一次,防止重复执行。
方法2:临时关闭当前网站的弹窗拦截(不推荐,存在安全风险)
你可以临时将当前站点加入浏览器弹窗白名单:
- 点击地址栏右侧的弹窗拦截图标(一般是带斜线的弹窗标识)
- 选择「始终允许此网站的弹窗」
- 刷新页面后重新执行你的原代码,即可打开所有符合条件的链接
控制台能否实现此操作?
可以,通过上述两种方法,都能在浏览器控制台完成批量打开符合条件链接的需求。
内容的提问来源于stack exchange,提问作者Erfan ahmadi
相关产品推荐
相关产品推荐

