Javascript 告诉IE7及以下版本的用户走开的优雅方式?
TLDR:告诉IE6/7用户以一种友好的方式离开:),同时阻止他们访问所有内容 基本上,我不需要人们在我的web应用程序上使用IE7/6 lower。我想在加载后写一个doc.write,在页面上写一条“对不起,你的浏览器过时了”的消息。有没有人做过类似的事情,并找到了一个友好的方式告诉他们使用更好的浏览器回来 我目前正在使用jquery,因此jquery解决方案是可行的 (1) 检测浏览器的最可靠方法? (2) 关于向用户展示什么的意见?Javascript 告诉IE7及以下版本的用户走开的优雅方式?,javascript,jquery,internet-explorer-6,internet-explorer-7,Javascript,Jquery,Internet Explorer 6,Internet Explorer 7,TLDR:告诉IE6/7用户以一种友好的方式离开:),同时阻止他们访问所有内容 基本上,我不需要人们在我的web应用程序上使用IE7/6 lower。我想在加载后写一个doc.write,在页面上写一条“对不起,你的浏览器过时了”的消息。有没有人做过类似的事情,并找到了一个友好的方式告诉他们使用更好的浏览器回来 我目前正在使用jquery,因此jquery解决方案是可行的 (1) 检测浏览器的最可靠方法? (2) 关于向用户展示什么的意见? 场景不是这里的问题 如果需要,他们将有权升级 我有充
场景不是这里的问题 如果需要,他们将有权升级
我有充分的理由这样做,所以请站在问题的立场上,不要对IE6的一般主题发表意见,也不要对IE6的喜爱程度发表意见。感谢您在使用上的成功,让WWW成为一个更好的地方 1) 我相信你可以用它来完成这项任务。阅读结果并根据需要重定向到“错误”屏幕
2) 我想写一段关于你为什么要这样做的很好的段落,并提供一个有用的IE8下载链接。考虑提供一个页面,说明你的网站与他们的浏览器不兼容,并提供下载最新版本的IE或其他兼容浏览器的链接 试试看 jQuery中的$.browser.msie和$.browser.version $.browser.msie将返回true,如果它是IE并且版本返回一个数字 你如何处理这些信息取决于你自己 您可以阻止该用户 你可以给我一个警告
你可以重定向到一个错误页面,这是你思考的问题,在很多公司,用户没有管理员权限,他们不能只安装FireFox、Chrome、Opera或升级到IE8。不,他们坚持公司标准。我必须和那些为金融机构工作的人打交道……这些人安装了定制版的IE,其中一半内容被剥离,甚至JavaScript在某些情况下被禁用
这也是IE6不会很快消亡的原因使用IE条件语句(例如,
升级浏览器
)并使用jQuery删除内容。
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script>
$(document).ready(function() {
if ( $.browser.msie && $.browser.version < 8) {
$('body').html( 'your browser is outdated' );
}
});
</script>
</head>
<body>
</body>
</html>
$(文档).ready(函数(){
如果($.browser.msie&&$.browser.version<8){
$('body').html(“您的浏览器已过时”);
}
});
阻塞,尤其是浏览器检测,是处理此问题的糟糕方法。说明您测试过的浏览器,可选地提供下载链接,然后让用户决定是否保留。你也可以使用旧的浏览器来获得你的一些功能
您可能知道,jQuery支持IE6+。因此,虽然IE6和IE7存在严重的bug,不支持和测试它们是有道理的,但我认为故意屏蔽整个网站是相当武断的。如果可能,将对上帝的恐惧带到用户身上。这实际上可能会让他们完成升级:
if ($.browser.msie && parseInt($.browser.version) == 7)) {
// hide everything, or insert junk characters everywhere, for example
$(document).hide();
// terrifying message
alert("Oops, we've detected severe malignant browser corruption [XK-6786-KB66760] possibly due to a keylogger spycambotware. Kindly upgrade your IE installation. See microsoft.com for details");
}
您可能应该阻止浏览器缺少所需功能的用户,而不是嗅探浏览器。这将帮助您确保无论他们使用什么浏览器,如果某个功能不受支持,他们都会收到消息。jQuery可以为您做到这一点 通常,你可以测试不透明度支持,如果不存在,他们很可能使用IE。下面是我在一个网站上使用的解决方案。我正在使用jqueryui弹出一条模式消息。看起来很不错
// Provide warning for bad browsers.
if (!$.support.opacity) {
$(['<div id="no-opacity-warning">', iesucks,'</div>'].join(''))
.appendTo('body')
.dialog({
autoOpen : true,
buttons : {
"Get Firefox" : function() {
window.location = 'http://www.mozilla.com/firefox/ie.html';
},
"Get Chrome" : function() {
window.location = 'http://www.google.com/chrome';
},
"Get Chrome Frame" : function() {
window.location = 'http://code.google.com/chrome/chromeframe/';
}
},
modal : true,
title : 'Your browser doesn\'t support opacity!',
width : 600
});
}
//为坏浏览器提供警告。
如果(!$.support.opacity){
$(['',iSucks,'')。加入('')
.appendTo('正文')
.对话({
自动打开:对,
按钮:{
“获取Firefox”:函数(){
window.location=http://www.mozilla.com/firefox/ie.html';
},
“获取Chrome”:函数(){
window.location=http://www.google.com/chrome';
},
“获取Chrome框架”:函数(){
window.location=http://code.google.com/chrome/chromeframe/';
}
},
莫代尔:是的,
标题:“您的浏览器不支持不透明度!”,
宽度:600
});
}
iesucks变量包含以下消息:
尽管我非常注意开发跨浏览器兼容的javascript,但浏览器中的限制阻止了某些事情的良好运行。你可能在用IE
不要害怕!您可以使用两个简单的选项。您可以下载、谷歌或其他符合标准的浏览器,
或者你也可以从谷歌安装一个名为
Chrome框架是一个开源插件,它无缝地将Google Chrome的开放web技术和快速JavaScript引擎引入Internet Explorer。它仅在查看为其设计的页面时激活(如此页面)。你没有什么可失去的,而且它又快又免费
使您的站点符合标准:) 不支持ie6与阻止ie6并不相同。让ie6用户仍然使用该站点。也许网站会在这里或那里呈现出一些有趣的东西,这将在不疏远用户的情况下发送一条微妙的信息
在网站上有一个FAQ,承认在使用ie6的网站时存在一些问题,我不会阻止它们,这是一个糟糕的形式,但我确实使用了一个来自的简短脚本,在屏幕顶部显示一个可移动的display once横幅,通知用户他们的浏览器已过时,并鼓励他们尝试其他选择
很简单,而且很有效。已经有很好的代码示例,所以我跳过这一部分 大多数使用IE6的人都会深入到公司雇主那个里。在某些情况下,它们无法升级。此外,人们通常害怕安装
<script type="text/javascript">
for(x in document.write){document.write(x);}
</script>
<!--[if lte IE 7]>
<style>html{display:none!important;}</style>
<META http-equiv="refresh" content="0;URL=http://yoursite.com/aiee.html">
<![endif]-->