阻止IE用户加载网页
Prevent IE users from loading a webpage
我是一名C++开发人员,正试图交付他的第一个PHP/HTML5/CSS3项目。我不熟悉浏览器兼容性问题(尤其是IE),我在linux盒子上做CSS的东西。现在项目已经完成并准备交付,但发现并没有CSS代码在IE上工作。
我在谷歌上找到了IE7.js、CSS3 Pie和其他java脚本技巧,但没有人能成功解决所有问题。因此,我试图找到一种方法来防止用户加载旧IE版本的内容。
此脚本(或条件注释)应将用户重定向到一个自定义页面,指示他们必须下载并安装IE 10或更高版本,或现代浏览器。
我试着把这个代码放在页面的末尾:
<!--[if IE]>
<?php
header( 'Location: http://www.foo-bar.com/please-use-a-browser.html' ) ;
?>
<![endif]-->
但没有重定向。
欢迎任何其他建议。
放在页面末尾的代码不起作用,因为它是在客户端计算的,而PHP是服务器端语言。因此,当客户端解析用户是否使用IE时……不会发生任何事情,因为PHP没有为运行时输出任何浏览器可以阅读和理解的"指令"。
将header( 'Location: http://www.foo-bar.com/please-use-a-browser.html' ) ;
替换为:
<script>
window.location.replace("http://stackoverflow.com");
</script>
所以你的代码是:
<!--[if IE]>
<script>
window.location.replace("http://stackoverflow.com");
</script>
<![endif]-->
此外,将其放在页面顶部-重定向之前不需要处理以前的内容,是否继续应该是<head>
部分中确定的第一件事。
也就是说,我的总体倾向是调试和解决CSS问题,特别是当IE 10放弃了对条件评论的支持,并且可以很好地保持自己的状态时,你可能会发现你只是在推迟不可避免的事情(很抱歉是坏消息的传播者!)
另一种选择是将以下内容放在页面的head
部分:
<script>
navigator.appName == 'Microsoft Internet Explorer' && window.location.replace("http://stackoverflow.com");
</script>
如果你真的想确定,请阅读微软关于检测IE 的文章
您也可以使用:
<?php
if (isset($_SERVER['HTTP_USER_AGENT']) && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false)){
header('Location: http://www.foo-bar.com/please-use-a-browser.html');
exit(0);
}
在服务器端。
相关文章:
- 如何防止网页加载后自动启动功能
- 如何在网页加载时显示加载内容,并在页面完全加载时隐藏此内容
- 如何在网页加载asp.net上显示文本框中第二个字母的光标位置
- 我能得到网页加载的时间吗
- 如何在整个网页加载后执行脚本
- 网页加载不正确:'"JSON”;未定义'错误
- 如何在网页加载之前添加加载页面
- 删除不需要的javascript和css是否包括减轻网页加载时间
- 如何在硒中仅从网页加载html
- 如何获取网页加载时间
- 如何在网页加载之前制作预加载器
- 如何使用网页加载的源从网页获取文本框内容
- Touchstart 事件永远不会在网页加载的首次加载时在 Android Chrome 上触发
- 网页加载完成后图像淡入
- 在网页加载后覆盖现有的javascript方法应该是可能的
- Selenium网页加载问题
- 在整个网页加载后加载谷歌广告
- 使用Javascript在网页加载时自动点击
- 如何在javascript中创建进度条以及如何在网页加载时使用它
- 当网页加载时,自动聚焦HTML表单输入的最佳方法是什么?