<base>:文档的 base URL 元素
Baseline 广泛可用 *
<base>
HTML 元素指定了文档中所有相对 URL 的基础 URL。一个文档中只能有一个 <base>
元素。
脚本可以通过 Node.baseURI
访问文档使用的 base URL。如果文档中没有 <base>
元素,那么 baseURI
会默认使用 location.href
。
属性
此元素的属性包括全局属性。
警告: <base>
元素必须有一个 href
属性、一个 target
属性,或者两者都有。如果指定了至少一个这些属性,那么 <base>
元素必须出现在其他具有 URL 属性值的元素(例如 <link>
的 href
属性)之前。
href
-
用于文档中相对 URL 的基础 URL。允许使用绝对 URL 和相对 URL。
data:
和javascript:
URL 不允许。 目标
-
默认 浏览上下文 的关键字或作者定义名称,用于显示没有显式
target
属性的<a>
、<area>
或<form>
元素的导航结果。以下关键字具有特殊含义:_self
(默认):在当前浏览上下文中显示结果。_blank
:在一个新的、未命名的浏览上下文中显示结果。_parent
:如果在当前页面是框架的一部分,则在当前浏览上下文的父级浏览上下文中显示结果。如果没有父级,则行为与_self
相同。_top
:在最顶层的浏览上下文中显示结果(即当前浏览上下文的祖先且没有父级的浏览上下文)。如果没有父级,则行为与_self
相同。
用法说明
多个 <base> 元素
如果使用了多个 <base>
元素,只有第一个 href
和第一个 target
会被遵守,其他所有都会被忽略。
页面内锚点
指向文档中某个片段的链接(例如 <a href="#some-id">
)会根据 <base>
进行解析,从而向基础 URL 发送一个带有附加片段的 HTTP 请求。
例如,给定 <base href="https://example.com/">
和此链接:<a href="#anchor">跳转到锚点</a>
。该链接指向 https://example.com/#anchor
。
target 不能包含 ASCII 换行符、制表符或 <
如果 target
属性包含 ASCII 换行符、制表符或 <
字符,则该值会被重置为 _blank
。这是为了防止悬空标记注入攻击,这是一种无需脚本的攻击,攻击者可以将一个未闭合的 target
属性注入页面,直到浏览器遇到一个关闭该属性的字符,从而捕获其后的所有文本。
Open Graph
Open Graph 标签不识别 <base>
,应始终使用完整的绝对 URL。例如:
<meta property="og:image" content="https://example.com/thumbnail.jpg" />
示例
<base href="https://www.example.com/" />
<base target="_blank" />
<base target="_top" href="https://example.com/" />
技术摘要
内容类别 | 元数据内容。 |
---|---|
允许内容 | 无;它是一个空元素。 |
标签省略 | 必须有起始标签,且不能有结束标签。 |
允许父级 | 一个不包含其他 <base> 元素的 <head> 。 |
隐式 ARIA 角色 | 没有对应的角色 |
允许的 ARIA 角色 | 不允许 role |
DOM 接口 | HTMLBaseElement |
规范
规范 |
---|
HTML # the-base-element |
浏览器兼容性
加载中…