元刷新不起作用?
我有一个页面使用的东西沿线
<meta http-equiv="refresh" content="0;url=http://example.com/" />
但对于某些工作站上的某些用户,这是行不通的。 在IE中。 有没有什么错误的cookies或设置在某个地方会导致此失败? 我从来没有听说过这样的事情。
问题是,当IE看到这个:
<meta http-equiv="refresh" content="0;http://www.example.com" />
它期望内容属性包含一个数字。 如果content属性中包含“URL =”,那么IE只会检查一个URL,所以在所有的浏览器中最可用的redirect是这样的:
<meta http-equiv="refresh" content="0;URL=http://www.example.com" />
上面的例子会自动redirect,但是如果你改变了另一个数字0,它会等待那么多秒。 希望这一切都有道理,它应该工作得很好,但我仍然认为我的第一个想法是更好的。
在Internet Explorer中有一个安全设置,不允许元标记刷新。 它位于“安全”选项卡下,然后select“自定义级别”和“其他”下的“元标记刷新”。 如果这被禁用,它将停止元刷新工作。
除了能够select性地禁用它,如果您将IE的安全级别设置为“高”(在IE9中观察),它将被自动禁用。
它是一个真正的旧版本的IE? 如果是这样,请尝试:
<meta http-equiv="refresh" content="0;url=http://example.com/"> </meta>
它需要一个白色的空间。 HTML编辑器会抱怨,但只是忽略它。
看看这个解决scheme。 它同时处理JavaScript和元刷新: 元刷新和JavaScript
META标签不是一个空标签,并且在HTML中没有结束标签,只有在XHTML中。 (如果你真的在发送XHTML,它可能无法在老版本的IE浏览器上正常工作,只有解决方法才能将XHTML发送到较早的IE版本。)
尝试:
<meta http-equiv="refresh" content="0;url=http://example.com/">
W3学校META标记描述
你也可以尝试:
- 检查IE的主要和次要版本。 你可以在帮助 – >关于菜单选项上做到这一点。
- IE浏览器历史上已经被文件名和MIMEtypes弄糊涂了。 确保您发送的HTML文件是htm或html扩展名文件,并且在服务器上设置这些文件types以发送text / html mimetype。
- 确保你的服务器没有发送有冲突的元刷新HTTP头。
只是一个疯狂的猜测:也许有一些adblockers安装在redirect不起作用的机器上。 想不到任何其他的原因,为什么这个常用的技术在某些机器上工作,而在别人身上却失败了。
如果有人试图使用元刷新redirect到 Facebook应用程序(页面选项卡应用程序或IFRAME应用程序)中的新URL ,该标记被Facebook以某种方式禁用。
解决方法是:
<script> top.window.location = 'http://example.com'; </script>
记住要定位“顶部”,因为Facebook应用程序在IFRAME中。