我想阻止Safari的所有用户访问我的Flash游戏网站。我希望他们看到一张脸被打的脸,而不是游戏。如何从我的网站阻止Safari用户?
我的理解是,您可以使用JavaScript来做到这一点,但我不想使用像JQuery这样的重型框架。有没有办法像JavaScript中的一行或两行那样做?
我想阻止Safari的所有用户访问我的Flash游戏网站。我希望他们看到一张脸被打的脸,而不是游戏。如何从我的网站阻止Safari用户?
我的理解是,您可以使用JavaScript来做到这一点,但我不想使用像JQuery这样的重型框架。有没有办法像JavaScript中的一行或两行那样做?
这是一个可怕的,可怕的想法IMO。我可以理解这种情绪,但是这样做会做得很好,并且会提供尽可能多的同情,比如“停止使用IE,白痴!”等网站。消息。但这取决于你......
Quirksmode有一个小型的BrowserDetect库,我相信它有所有的怪癖。如果我是你,我会用它。
要在一行中完成,请在navigator.userAgent
字符串中查找Safari
。
示例代码:
if (navigator.userAgent.indexOf('Safari/') != -1){
alert("Safari detected");
}
如果你想100%确定你赶上他们(当然,99%牢记用户代理字符串可以由客户自由改变),你会需要使用像PHP这样的服务器端语言。超过两行的
if (strstr($_SERVER["HTTP_USER_AGENT"], "Safari"))
{
header("location:no-safari.html");
die();
}
+1为*“可怕的,可怕的想法”*。对于无法选择网页浏览器的用户来说,这些类型的“想法”尤其令人讨厌。不幸的是,有些人会惩罚用户,因为浏览器供应商会真正关心的愚蠢/妄想的观点。 – 2010-06-07 11:18:03
@安迪哟。我全都是为了抗议苹果的政策 - 我发现其中很多都是可怕的和不道德的 - 但是骚扰你的用户是不会有所帮助的。从来没有。 – 2010-06-07 11:19:46
非常感谢! 这是完美的 - 通过添加window.location =“no-safari.html”而不是提醒它移动页面! – 2010-06-07 11:28:37
if(navigator.appName == "Safari")
{
....your code goes ....
}
更多,但你可以很简单地切下来,因此只能在Safari困扰:http://www.quirksmode.org/js/detect.html
稍微更加坚实的方法是使用服务器端检测像php的方法get_browser([string $user_agent [, bool $return_array = false ]])
不用说,这有点傻。
如果你只是使用jQuery,我敢肯定,你可以*在他们的脸上打他们,而不是只显示一个人被打在脸上的照片。 – 2010-06-07 11:04:09
呃......这是非常沉重的手段,阻止所有的Safari用户,并显示在脸上被打的图片。不是说我应该用SO来推广我的社会政治理想,但我敢肯定,这里至少大多数人会同意 – 2010-06-07 11:06:20
为什么你想阻止Safari游戏用户从Flash游戏? Safari不会在Safari中运行良好?无论如何,你应该完全放弃这个,并使用jQuery来代替。 – Amarghosh 2010-06-07 11:06:22