如何用单段JavaScript脚本实现网页所有链接在新窗口打开?
实现所有通讯链接在新窗口打开的通用方案
方案1:HTML原生属性(最简单)
如果可以直接修改链接的HTML代码,给每个指向Mailchimp的<a>标签加上target="_blank"属性就行,不用写JS:
<a href="https://mailchimp.com/对应通讯地址" target="_blank"> <span style="font-size:16px;"><u>E-News March 2nd</u></span> </a>
这是浏览器原生支持的属性,稳定可靠,后续新增链接时只需要加上这个属性即可。
方案2:JavaScript事件委托(自动处理所有现有/新增链接)
如果不想手动修改每个链接,或者后续会动态新增通讯链接,用事件委托的方式最省心——只需要一段脚本,就能处理页面上所有现有和未来新增的Mailchimp链接:
// 监听整个文档的点击事件 document.addEventListener('click', function(e) { // 找到点击元素所在的最外层<a>标签 const targetLink = e.target.closest('a'); // 判断是否是指向Mailchimp的链接 if (targetLink && targetLink.href.includes('mailchimp.com')) { e.preventDefault(); // 阻止默认跳转行为 window.open(targetLink.href, '_blank'); // 在新窗口打开链接 } });
说明:
closest('a')能确保点击到链接内部的子元素(比如你例子里的<span>、<u>)时,依然能触发逻辑;targetLink.href.includes('mailchimp.com')可以精准只处理Mailchimp的链接,不会影响站内其他正常跳转的链接;- 如果需要让所有链接都在新窗口打开,删掉上面的
&& targetLink.href.includes('mailchimp.com')判断即可。
最后,记得把原来单独写的onclick="myFunction()"和对应的函数代码删掉,避免逻辑冲突。
内容的提问来源于stack exchange,提问作者anthony.cupp
相关产品推荐
相关产品推荐

