我一直在进行大量的跨浏览器测试,我必须说这是我存在的祸根。我的漂亮字体在特定浏览器和特定环境中被玷污。尽管在两个单独的浏览器中具有完全相同的代码,但内容以完全不同的方式呈现。当然,这不是秘密。但我想知道的是,是否有一种方法可以阻止用户使用特定浏览器访问HTML页面?
<!--[if IE/Safari/Firefox/Chrome/Opera/etc]>
<link rel="stylesheet" href="/stylesheets/block.css" type="text/css" />
<![endif]-->
block.css
body {display:none; }
从专业角度讲,我有义务支持用户可能认为他们想要使用的所有浏览器和环境。而且,了解每个浏览器的行为方式和原因并非如此糟糕。但是对于辅助项目来说,不必担心我是否会因为不支持浏览器x而被社会所避免而感到高兴。
另请注意,我没有将特定浏览器称为特别缺陷,因此请随意忽略任何“浏览器x糟透了!”评价。
答案 0 :(得分:1)
有几种方法可以做到这一点:
您可以使用JavaScript执行此操作:
if(<BROWSER SUCKS>) {
window.location = "YOUR-ERROR-PAGE.html";
}
或者
if(<BROWSER SUCKS>) {
alert("Your browser sucks, use 'xyz' instead.");
}
您的代码需要查看window.navigator
对象以检测浏览器类型。
特别是关于上面的示例,如果浏览器被吸引,要隐藏页面,您将使用:
document.body.style.display = "none";
答案 1 :(得分:0)
是的,可能,但这是不可行的,因为任何现代浏览器都会让你更改用户代理字符串,从而(可能)绕过你的支票。
答案 2 :(得分:0)
您可以使用以下内容:
<?php
$using_ie6 = (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.') !== FALSE);
if($using_ie6) {
die('Sorry, your browser is not supported');
}
?>
并根据您要阻止的浏览器进行修改,上面显然会允许您阻止IE6。
您可以使用http://www.useragentstring.com/来提供帮助