Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 为什么Chrome不使用元刷新重定向_Html_Google Chrome_Redirect_Meta - Fatal编程技术网

Html 为什么Chrome不使用元刷新重定向

Html 为什么Chrome不使用元刷新重定向,html,google-chrome,redirect,meta,Html,Google Chrome,Redirect,Meta,我使用的应用程序有一个PL/SQL包,它创建一个页面并使用一个函数创建元标记 它创建了一个带有元标记的网页,如下所示: <META HTTP-EQUIV="Refresh" NAME="Refresh" CONTENT="1; URL=PaymentSubmit.html"> 问题是Chrome不喜欢NAME=“Refresh”属性。虽然它在IE和Firefox中正确重定向页面,但它不会重定向页面 如果我删除NAME属性,使其看起来像这样,那么它在所有浏览器中都可以工作:

我使用的应用程序有一个PL/SQL包,它创建一个页面并使用一个函数创建元标记

它创建了一个带有元标记的网页,如下所示:

 <META HTTP-EQUIV="Refresh" NAME="Refresh" CONTENT="1; URL=PaymentSubmit.html">

问题是Chrome不喜欢NAME=“Refresh”属性。虽然它在IE和Firefox中正确重定向页面,但它不会重定向页面

如果我删除NAME属性,使其看起来像这样,那么它在所有浏览器中都可以工作:

 <META HTTP-EQUIV="Refresh" CONTENT="1; URL=PaymentSubmit.html">

这是怎么回事?我找不到用于元重定向的W3C标准,那么每个浏览器都有自己的规则吗?我不确定它是否在Chrome中工作过,但由于我从未听过任何bug报告,我认为它曾经在Chrome中工作过

有人有类似的问题吗

谢谢

如果您查看,您可以找到以下报价:

必须指定名称、http equiv和字符集属性中的一个

这意味着设置了-
name
httpequiv
属性是无效的html

阅读:

查找文档中的所有元元素。对于每个元元素,检查 如果它包含值为“refresh”的属性http equiv (不区分大小写)和数字较大的content属性 大于0后跟;'URL=anyURL'(其中anyURL代表 应替换当前页面)

其他浏览器的行为没有错,但chrome更严格

有关正确行为和有效参考的更多详细信息,请访问
的,以获得浏览器支持:
甚至在IE6中也支持
刷新

要使用的语法是: 放置在
内,5秒钟后刷新页面:

<meta http-equiv="refresh" content="5">
<meta http-equiv="refresh" content="5; url=http://example.com/">

5秒后重定向到:

<meta http-equiv="refresh" content="5">
<meta http-equiv="refresh" content="5; url=http://example.com/">

立即重定向到:

<meta http-equiv="refresh" content="0; url=http://example.com/">
<body onload="javascript:window.location='http://example.com'">

如果您计划支持javascript禁用程序(我认为您不应该这样做:)

执行此操作:

它不是HTTP标准的一部分

但是,还有其他选择:

要在5秒钟后刷新页面,请执行以下操作:

<body onload="javascript:setTimeout(function(){ location.reload(); },5000);">
<body onload="javascript:setTimeout(function(){ window.location = 'http://example.com';},5000);">

如果要在5秒钟后重定向,请执行以下操作:

<body onload="javascript:setTimeout(function(){ location.reload(); },5000);">
<body onload="javascript:setTimeout(function(){ window.location = 'http://example.com';},5000);">

如果要立即重定向,请执行以下操作:

<meta http-equiv="refresh" content="0; url=http://example.com/">
<body onload="javascript:window.location='http://example.com'">

但是javascript禁用程序没有其他选择(yippee!!)

结论: 因此,我的建议是使用我的javascript替代方案,因为它们不会被取代

但是
刷新标签可能会在未来几年停止使用


更多阅读:

以下是W3C关于重定向与刷新的一些措辞: