2009-02-06 106 views
39

我使用的东西沿着元刷新不起作用?

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

线,但某些用户有一定的工作站这不起作用上有一个页面。在IE中。有没有错误的cookie或设置某处会导致此失败?我从来没有听说过这样的事情。

+0

格雷格,你应该显示你的标记的上下文。上面是什么?它下面有什么等。 – Sampson 2009-02-06 22:09:42

+0

也许这是一个由无效标记引起的错误,它只发生在这台机器上的某个浏览器中。 – Gumbo 2009-02-06 22:10:52

回答

73

的问题是,IE看到这个时:

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

,预计内容属性包含一个数字。唯一的一次,IE将检查URL是如果内容属性包含“URL =”所以这是最可用在所有浏览器重定向是这样的:

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

以上例子将immdetiately重定向,但如果你改变了0代表另一个数字,它会等待几秒钟。希望这一切都有道理,它应该工作得很好,但我仍然认为我的第一个想法是更好的。

0

只是一个疯狂的猜测:也许有一些adblockers安装在重定向不起作用的那些机器上。 想不到任何其他原因,为什么这种常见的技术在某些机器上工作,而在别人上失败。

5

它是IE的真正旧版本吗?如果是,请尝试:

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

它需要一个空白区域。 HTML编辑器会抱怨,但只是忽略它。

+1

真的很老,你的意思是IE7?哈哈,这终于为我工作。谢谢! – guanome 2011-08-31 19:08:30

3

META标记不是空的标记,并且在HTML中没有结束标记,只能在XHTML中使用。 (如果你真的要发送XHTML,它可能无法在旧版本的IE工作的权利,无论如何,只有送XHTML较旧版本的IE的解决方法。)

尝试:

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

W3 Schools META Tag Description

您也可以尝试:

  1. 检查IE的主要版本和次要版本。您可以在help-> about菜单选项中执行此操作。
  2. IE在历史上已经被文件名和MIMEtypes所困惑。确保您将HTML发送为htm或html扩展文件,并且在服务器上设置这些文件类型以发送text/html mimetype。
  3. 确保您的服务器没有发送冲突的元刷新HTTP标头。
31

在Internet Explorer中有一个安全设置,不允许元标记刷新。它位于安全选项卡下,然后选择自定义级别和杂项下的元标记刷新。如果这被禁用,它将停止元刷新工作。

除了能够选择性地禁用它,如果您将IE的安全级别设置为“高”(在IE9中观察到),它会自动禁用。

+0

绝对正确。在我的情况下,这是确切的解决方案,因为我正在从Azure虚拟机内访问IE以用于测试目的。 – julealgon 2014-08-01 14:53:02

0

如果有人试图使用元刷新重定向到新的URL在Facebook应用程序(无论是页面标签的应用程序或IFRAME应用程序),标签是:它在同一时间处理JavaScript和元刷新以某种方式被Facebook禁用。

解决方法是:

<script> 
top.window.location = 'http://example.com'; 
</script> 

记住为目标 “顶”,因为Facebook应用程序都在IFRAME。