45

我有一个页面使用类似的东西

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

但对于某个工作站上的某些用户,这不起作用。在 IE 中。cookie 或某处的设置是否有问题会导致此操作失败?我从来没有听说过这样的事情。

4

7 回答 7

77

问题是当 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" />

上面的示例将立即重定向,但如果您将 0 更改为另一个数字,它将等待那么多秒。希望这一切都有意义,它应该可以正常工作,但我仍然认为我的第一个想法是更好的。

于 2009-09-06T20:09:30.750 回答
35

Internet Explorer 中有一项安全设置不允许刷新元标记。它位于 Security 选项卡下,然后选择 Custom Level 和 Miscellaneous 下的 Meta Tag Refresh。如果禁用,它将停止元刷新工作。

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

于 2009-02-07T01:05:39.880 回答
5

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

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

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

于 2009-02-06T22:10:25.523 回答
3

看看这个解决方案。它同时处理 javascript 和 meta-refresh: Meta-refresh and javascript

于 2010-06-10T15:22:53.283 回答
2

META 标记不是空标记,在 HTML 中没有结束标记,只有在 XHTML 中。(如果您真的要发送 XHTML,它可能无法在旧版本的 IE 上正常工作,只有将 XHTML 发送到旧版 IE 的变通方法。)

尝试:

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

W3 学校 META 标签说明

你也可以试试:

  1. 检查 IE 的主要和次要版本。您可以在 help->about 菜单选项中执行此操作。
  2. IE 历来都被文件名和 MIMEtypes 搞糊涂了。确保您将 HTML 作为 htm 或 html 扩展文件发送,并且这些文件类型已在您的服务器上设置为发送 text/html mimetype。
  3. 确保您的服务器没有发送冲突的元刷新 http 标头。
于 2009-02-06T22:24:13.217 回答
0

只是一个疯狂的猜测:也许在重定向不起作用的那些机器上安装了一些广告拦截器。想不出任何其他原因为什么这种常见技术在某些机器上有效,而在其他机器上却对您无效。

于 2009-02-06T22:10:01.513 回答
0

如果有人尝试使用元刷新重定向到Facebook 应用程序(Page Tab 应用程序或 IFRAME 应用程序)中的新 URL,则 Facebook 会以某种方式禁用该标签。

解决方法是:

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

请记住以“顶部”为目标,因为 Facebook 应用程序位于 IFRAME 中。

于 2013-12-27T11:52:37.843 回答