您现在的位置是:主页 > 科技 >
如何在网站中实现点击链接自动在新窗口打开
2019-12-03 14:07:30科技 102人已围观
丨纠错提交丨
方法一:HTML 原生属性(推荐)
直接在 `<a>` 标签中添加 `target="_blank"` 属性,这是最简洁、兼容性最好的方式。
代码示例:
<a href="https://目标网址.com" target="_blank">点击这里(新窗口打开)</a>
特点: - 原生支持,无需额外代码。 - 适用于静态链接。 方法二:JavaScript 全局修改(批量处理) 通过 JavaScript 自动为页面所有链接添加新窗口打开行为。
代码示例:
<script> // 为所有 <a> 标签添加 target="_blank document.querySelectorAll('a').forEach(link => { link.setAttribute('target', '_blank'); }); </script>特点:
- 适用于已有大量链接的页面。
- **注意**:需在页面加载完成后执行(如放在 `</body>` 前)
方法三:事件委托(动态链接兼容)
监听全局点击事件,拦截链接点击行为并强制新窗口打开,兼容动态生成的链接。 ### 代码示例:<script> // 监听全局点击事件 document.addEventListener('click', function(e) { const target = e.target.closest('a'); // 检测点击的是否为链接 if (target) { e.preventDefault(); // 阻止默认跳转 window.open(target.href, '_blank'); // 新窗口打开 } }); </script>特点:
- 兼容动态生成的链接(如通过 AJAX 加载的内容)。
- 可通过条件判断(如仅处理外部链接)。
方法四:进阶用法(区分内外链)
仅对外部链接(非本站链接)启用新窗口打开。
代码示例:
<script> document.addEventListener('click', function(e) { const link = e.target.closest('a'); if (link) { // 判断是否为外部链接 const isExternal = new URL(link.href).hostname !== location.hostname; if (isExternal) { e.preventDefault(); window.open(link.href, '_blank'); } } }); </script>注意事项
1. **用户体验**:
- 浏览器可能拦截新窗口(如广告屏蔽插件),可提前提示用户。
- 移动端部分场景可能不支持 `target="_blank"`。
2. **安全性**:
- 使用 `window.open` 时,建议添加 `rel="noopener noreferrer"` 防止安全漏洞:
```html
<a href="..." target="_blank" rel="noopener noreferrer">链接</a>
```
3. **SEO 影响**:
- 合理使用 `target="_blank"` 不会影响 SEO,但滥用可能导致用户体验分下降。
相关文章
随机图文
挨打受骂
成语解释:挨:遭受。受人打骂与虐待成语名字:挨打受骂 成语发音:ái dǎ shòu mà 成语繁体:挨打受駡 常用程度:常用 产生年代:近代 近义词: 挨打受气 成语出处:清 曹雪芹《红楼梦》第九回:“我们这些奴才白陪着挨打受骂的。” 成语用法:作谓语、定语、宾语;指受虐待 成语例句:她在婆家经常挨打受骂白发婆娑
成语解释:婆娑:四下披散的样子。形容满头白发的老人成语名字:白发婆娑 成语发音:bái fà pó suō 成语繁体:白發婆娑 常用程度:常用 产生年代:近代 近义词: 白发苍苍 成语出处:清·张岱《自为墓志铭》:“既不能觅死,又不能聊生,白发婆娑,犹视息人世。” 成语用法:作谓语、定语;指老人 成语例句:邓雅声《喜吟四章》:“焚香夜对灯如豆,白发婆娑苦校雠。”道歉信
同事道歉信 1 亲爱的同事: 每次参加完培训,我都像是充了电,可是这次回来心里老是不舒服,还是没有修炼好,又有伙伴要离开,责怪自己没能做的再好些。感觉对不起大家,如果觉得温暖就不会离开,如果还有留恋就不会离开,对不起,我没做好。如果取得信任就不会让你们这么放弃,如果你们可以看到希望就不会放弃,抱歉,我没做好。真心向离开的伙伴们道歉,我应该做好的。有一天我做好了,请你孙子兵法-军形篇
孙子曰:昔之善战者,先为不可胜,以待敌之可胜。不可胜在己,可胜在敌。故善战者,能为不可胜,不能使敌之必可胜。故曰:胜可知,而不可为。 不可胜者,守也;可胜者,攻也。守则不足,攻则有余。善守者,藏于九地之下,善攻者,动于九天之上,故能自保而全胜也。 见胜不过众人之所知,非善之善者也;战胜而天下曰善,非善之善者也。故举秋毫不为多力,见日月不为明目,闻雷霆不为聪耳。古之所谓善战者,胜于易胜者
站点信息
- 文章统计: 985 篇文章
- 微信公众号:扫描二维码,关注我们