0

第一的:

<meta http-equiv="refresh" content="0" url="http://www.google.com"/>

第二:

<meta http-equiv="refresh" content="0;URL=http://www.google.com"/>

第一个似乎更理智,但不起作用,而第二个有效,但似乎格式不正确。

4

3 回答 3

2

元标记http-equiv实际上是一种将 HTTP 响应标头的 *equiv*alent 放入 HTML 页面的方法。HTTP 中的标头由字段名称和内容组成,因此第二个在这种情况下是正确的。

于 2013-09-10T18:34:32.987 回答
0

正如您所说,主要区别在于后者(通常)有效,而前者无效。前者也不符合任何 HTML 规范或草案;HTML中没有命名属性url。(顺便说一下,采用 URL 值的属性的名称类似于hrefscr。)

后者原则上在 HTML 规范和草案中更加模糊。HTML 4.01间接提到了这个结构,但没有给出确切的形式:“一些用户代理支持使用 META 在指定的秒数后刷新当前页面,并可以选择用不同的 URI 替换它。作者不应使用此技术将用户转发到不同的页面,因为这会使某些用户无法访问该页面。相反,应该使用服务器端重定向来完成自动页面转发。”</p>

但 HTML5 CR 更真实地详细描述了构造及其功能,并声明它符合要求。

从 HTML 的角度来看,content属性的值只是一个字符串,它可能受制于其他规范中定义的规则。在这种情况下,奇怪的格式模仿了 HTTP 标头,该标头最初由 Netscape 引入,后来被浏览器广泛支持,但从未在 HTTP 规范中标准化。

于 2013-09-10T19:31:07.210 回答
0

根据W3 学校的说法(是的,我知道。根据一些无所不知的人来说,这不是最好的来源,就在这里),Meta 标签只有 5 个受支持的属性:

  • charset (仅限 html5):指定 HTML 文档的字符编码
  • content:给出与 http-equiv 或 name 属性关联的值
  • http-equiv:为内容属性的信息/值提供 HTTP 标头
  • name:指定元数据的名称
  • 方案 (不在 html5 中):指定用于解释内容属性值的方案
于 2013-09-10T18:38:01.557 回答