阻止IE浏览器

时间:2012-04-02 16:53:34

标签: javascript jquery cross-browser

我有一个仅支持Chrome,Firefox和Safari的网络应用。有很多方法可以阻止浏览器。我想看看什么是确保只有这些浏览器被授予访问权限的最有效方法。

由于

5 个答案:

答案 0 :(得分:4)

如果您知道IE中没有的特定功能,那么检测功能强大的浏览器的最佳方法是进行功能测试,以查看这些功能是否可用。这种方法不是可以欺骗的,如果在将来的某个时候,IE开始支持这些功能,你的应用程序就会开始在那里工作。

由于您正在使用jQuery,因此您可以查看jQuery.support以查看它已经向您展示的所有功能检测属性。

如果您不想使用功能检测方式并且想要检测浏览器系列,则可以使用任何一种浏览器检测方法。最常见的是只查看用户代理字符串。您应该意识到用户代理字符串在许多环境中是可设置的或可欺骗的,因此它不是浏览器引擎的结论性指示器。对于普通用户来说,它可能是准确的,但可以搞砸。

这是微软在检测IE和各种版本的IE时的一段代码:http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx

答案 1 :(得分:0)

解析UA字符串并拒绝通过apache,js,php等访问。 但是你无法确保标记为“firefox”的内容实际上是firefox - UA标题可能包含你喜欢的任何内容。

另一种方法是进行像常见js框架中使用的功能测试。但请记住,如果您的客户端的js被禁用,这将无效。

答案 2 :(得分:0)

这通常涉及检查正在使用您的Web应用程序的访问者的用户代理,并阻止访问您不想使用的用户代理。您可以在JavaScript中检查用户代理(仅当用户启用了JavaScript时才能使用)。请查看此页面,了解可以使用JavaScript检查的用户代理属性的信息:navigator.userAgent Property。或者你可以用PHP之类的东西检查这个服务器端。有关通过PHP访问用户的用户代理的更多信息,请查看this page。您将要检查用户代理是否包含字符串“MSIE”或相反(例如,检查它是否包含Gecko(对于使用firefox呈现引擎的浏览器)或WebKit for Chrome和Safari。

答案 3 :(得分:0)

我还建议使用modernizr来检测浏览器功能。

答案 4 :(得分:0)

我创建了一个页面:allowed.php

<?php 

$browser = 'Crap';

if( preg_match("/firefox/i",getenv("HTTP_USER_AGENT")) && preg_match("/firefox/i",$_SERVER['HTTP_USER_AGENT']) ){
   $browser = 'Firefox';
}

if( preg_match("/chrome/i",getenv("HTTP_USER_AGENT")) && preg_match("/chrome/i",$_SERVER['HTTP_USER_AGENT']) ){
    $browser = 'Chrome';
}

switch( $browser ){
case 'Firefox':
    // allowed
    break;
case 'Chrome':
    // allowed
    break;
default:
    Header("Location: rejects.html");
    exit();
}

//

拒绝页面:rejects.html

<!DOCTYPE html>
<html lang="en">
<head><title>Browser Rejects</title>
<meta charset="utf-8"/>
<style type="text/css">
html {
    margin:0px; width:100%; height:100%;
}
body {
    margin:0px; width:100%; height:100%;
}
.div-center { position:absolute; 
   margin:10% 20% auto 20%; padding:2%;
   border:1px solid #AAA; border-radius:10px; 
}
</style>
</head>
<body>

<div class="div-center">
When your Browser(or the Idiots that make it) learn(s) to abide to     Standards set by Society(e.g. W3C),<br>
We will then allow your Browser to be used on Our Sites.<br>
<br>
Until then, Please use a Real Web Browser like Firefox or Chrome.<br>
Thank You and have a Great Day !
</div>

</body>
</html>

我将这两者放在特定网站的底部,只需使用include allowed.php,过滤掉垃圾浏览器......

~SpaceCorp Innovative Technologies