HTML5怎么用base标签设置默认链接_target属性作用【解答】

18次阅读

能,但只对相对 URL 生效;base 标签的 target 属性仅作用于未显式指定 target 的相对链接,对绝对 URL、javaScript 链接、框架路由等无效,且必须置于 head 中且唯一。

HTML5怎么用base标签设置默认链接_target属性作用【解答】

base 标签能设置默认 target 吗?能,但只对相对 URL 生效

标签的 target 属性确实可以为页面中所有**未显式指定 target 的相对链接**提供默认跳转行为。但它对绝对 URL(含协议如 https://// 开头)和 javascript 动态生成的链接完全无效。

为什么点击 a 链接还是在当前页打开?常见原因有这些

  • 链接是绝对 URL:外部链接 —— 对它不起作用
  • 链接用了 javascript:void(0)# 锚点 —— 这类链接不触发导航,target 无意义
  • 标签没放在 中,或位置靠后(浏览器只读取第一个
  • 页面存在多个 ,但只有第一个生效,后续被忽略

实际写法与兼容性注意点

正确写法必须放在 内,且仅需一个:

    

关键细节:

  • hreftarget 可单独使用,互不影响;但若只设 targethref 必须存在(可为空字符串,但不推荐)
  • target="_blank" 时,**强烈建议同时加 rel="noopener" 到每个 上**,否则存在安全风险(新页可通过 window.opener 访问原页)
  • firefoxsafari 的支持较严格:如果链接是相对路径但最终解析为跨域地址,target 可能被忽略
  • vue/react 等框架中,路由链接(如 )完全绕过 ,它的 target 由框架自身控制

更可靠的做法:用 JavaScript 补全或直接写死

如果业务要求「所有外链都新窗口」,依赖 容易漏掉绝对 URL。更可控的方式是:

立即学习前端免费学习笔记(深入)”;

  • 给外链统一加 class
  • 用脚本补 targetrel
document.querySelectorAll('a.external').forEach(el => {   el.target = '_blank';   el.rel = 'noopener'; });

或者服务端渲染时直接输出完整属性 —— 比 更明确、更少意外。

真正容易被忽略的是:base 的 target 不是“全局强制”,而是“相对链接的 fallback”。一旦你混用相对/绝对 URL,行为就不可预测。

text=ZqhQzanResources