对于所有使用IE 7及更低版本网站的用户,我都希望在不显示head
或网站任何其他部分的情况下显示消息并仅此消息。< / p>
将此代码放在<head>
<!-- Target IE 7 EQUAL and LOWER (7, 6, 5, ..) -->
<!--[if lte IE 7]>
<div id="ie7lower">
<a href="http://browsehappy.com/">
<p>Click here to update your browser..</p>
</a>
</div>
<style type="text/css">body {display:none;}</style>
<![endif]-->
</head>
<body>
...
ie7lower
我认为应该显示div head
,因为它仍在body
中,并且内联样式告诉ie7lower
不显示。
但是,只要我使用内联样式,div id head
也会被隐藏。
可能是IE 7及更低版本将body
置于head
内,或假设body
是ie7lower
的一部分,因此div <!-- https://stackoverflow.com/questions/33252945/redirect-to-another-page-without-loading-current-page-in-jquery -->
<!--[if lte IE 8]>
<script type="text/javascript">
location.replace('ie/outdated.html');
</script>
<![endif]-->
1}}也不再显示了?
基本上我想隐藏甚至更好甚至不为IE 7及更低版本的用户加载整个网站,只需向他们显示更新浏览器的消息。如果没有JavaScript可以做到这一点会很棒。
修改
虽然在没有显示包装器的情况下隐藏页面内容,这是我想要做的解决方案,但确实在条件注释中加载了所有其他脚本和CSS。
尝试尽可能减少HTTP请求并快速将IE 7和较低用户引导至“更新您的浏览器”消息/页面我使用Redirect to another page without loading current page in jquery将它们重定向到同一域上的一个简单的最小页面没有加载我为IE 8和IE 9设置的所有额外脚本和CSS。
/
如果您的ie/outdated.html
位于同一个域名,outdated.html
前面没有 <html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Company Name | maximum 64 characters long title</title>
<meta name="description" content="Site description | maximum 130 chars long description for search engine snippet">
<!-- http://blog.powermapper.com/blog/post/Page-Title-Length-for-Search-Engines.aspx -->
</head>
<body>
<div id="outdated_container" style="text-align: center; margin: 0 auto;">
<h1>You are using an <strong>outdated</strong> browser that does not support this website's features.</h1>
<h1><a href="http://browsehappy.com/">Please upgrade your browser</a> to improve your web experience.</h1>
</div>
</body>
</html>
,请务必小心!
如果有人感兴趣,这是“过时的IE”消息/页面的起点。
"GET /Domain/ HTTP/1.1" 200 7866
"GET /Domain/ie/outdated.html HTTP/1.1" 200 1017
使用这种方法我只是得到
$('.btn-primary').on('click', function() {
console.log($('.btn-primary').index($(this)))
});
而不是普通网站对所有浏览器以及IE 8和IE 9的所有其他HTTP请求。
这虽然意味着必须在IE 7中启用JS,默认情况下更低。鉴于目前这一点很可能是用户的一小部分(使用IE 7和JS禁用网上冲浪),我可以接受这种方法。
答案 0 :(得分:2)
请不要将应该呈现的内容放在HTML头部内的用户身上。
我建议将所有内容包装在浏览器为IE7或更低版本时隐藏的包装中。
<head>
<!--[if lte IE 7]>
<style type="text/css">#wrapper {display:none;}</style>
<![endif]-->
</head>
<body>
<!--[if lte IE 7]>
<div id="ie7lower">
<a href="http://browsehappy.com/">
<p>Click here to update your browser..</p>
</a>
</div>
<![endif]-->
<div id="wrapper">
...
</div>
</body>
答案 1 :(得分:1)
在脑海中使用某种浏览器检测很好。
但是,将用户可见的内容放入其中并非如此。
您需要身体内的用户可以看到该部分。
根据您的评论更新:
不确定你指的是什么,但我会解决这两个问题。
你的div没有在头部显示,因为它根本不是一个可见的部分。
如果在身体中仍未显示,则还有其他问题。你的if语句可能没有取消注释。您可以使用他们的调试工具检查这是一个浏览器,以查看正在进行的操作。
如果您安装了任何用于浏览器检测的内容,请确保它已正确安装。
答案 2 :(得分:0)
使用此代码隐藏正文...
<!--[if lte IE 7]>
<style>
body {
display:none;
}
</style>
<![endif]-->