在我的一个Web开发类中,我们要求创建一个脚本来检测NE4,NE6 +,IE4,IE6 +浏览器,它们为每个浏览器显示一个兼容的CSS脚本.
他给了我们一篇文章来阅读这些以及文章中提到的 这个网站
其中一名学生说了这个
javascript兼容性的最佳选择是在您想要执行某些操作时测试浏览器功能.其中一个主要原因是,将来会创建越来越多的浏览器.
现在我的问题是,哪种方式是检测用户浏览器对象检测或使用导航器对象的最佳方法?
我有一个网站,我打算重做它.该站点的当前版本使用了一个jquery callout插件,该插件在IE6中无法完全运行.这让我想到了浏览器检测.
起初我只是将支持的浏览器放在主页上但是今天在Digg上我看到一些关于一些jquery插件和wordpress的帖子,在文章中有一个用于检测IE的插件.
所以我开始寻找一些浏览器检测插件.我发现了其中的一些但是它们就像这样的顶部
它很好但它会弹出一个巨大的弹出窗口并告诉它们更新.这个比我发现的另一个更好,他们基本上强迫用户更新或者他们无法在网站上继续.
所以我找到了这个
这个非常好看,因为它会查看主要的浏览器并对它们进行检测,对于我注意到触发器和使用此插件的过时浏览器的chrome也是如此.
所以我开始查看jquery文档,看看他们是否对chrome进行了浏览器检测,这时我看到他们"已弃用",现在推荐"支持".
所以现在我只是感到困惑,因为"支持"似乎很好,我在这个网站上阅读了许多帖子,说你应该使用它.
但是它不支持像.png检测这样的东西,因为这个插件可能对我有用(但是我可能不会再使用插件了,因为我认为作者只是放弃了它).
另外我不知道这是否是我现在正在寻找的东西.就像我猜测"支持"一样,你用它来检测不支持的东西然后为那个浏览器做一些替代的事情?
对我来说,我更想找点东西告诉用户"嘿看我在这些版本的Firefox(3.5 +),IE(8 +),Opera(9.5 +),Chrome(Something),Safari(Something)中测试了这个浏览器如果您不使用这些版本,您可能无法看到该网站的用途"
当然,我会尝试让那些消息更短,但是那个陀螺.我也假设该网站可以在这些浏览器的未来版本中使用.
我仍然检查我的网站是否有效(他们通常会这样做)并且在IE 6中只有一半,但我不会花费数小时修复可能在IE 6等旧版浏览器中关闭的内容.
我不会在像Firefox这样的其他浏览器的旧版本中测试我的网站,因为我认为用户必须有更新的意义所以没有点测试firefox 2.0或其他什么.
那么有适合这种描述的插件吗?或者"支持"可以做我想要的吗?
谢谢
我搜索过这个,我发现的一切都超出了我的需要.我以前在JavaScript中做过这个,但我更喜欢使用PHP.我将如何向访问者显示消息,具体取决于他们使用的浏览器?
例:
IE用户会看到:"你正在使用Internet Explorer"
Firefox用户会看到:"你正在使用Mozilla Firefox"
除了IE,Firefox,Chrome,Safari和Opera之外,我还不确定是否还有其他主流浏览器.但我至少希望单独向每个浏览器发送一条消息.谢谢.
我的很多访问者都是盲人(因为它是盲人的网站),而且经常在尝试诊断问题时,我想知道他们使用的是什么版本的浏览器等,是否安装了闪存.因为通常Y安装时,有人会发誓他们正在使用X. 目前,我正在使用http://jsbrwsniff.sourceforge.net/usage.html管理电子邮件,但我在这里遇到了两个问题:
首先,jsbrwsniff非常"沉重",自2007年初以来一直没有更新,因此结果中有很多-1.
其次,如果我按如下方式调用它,页面重新加载:
<a href="#" onclick="sendEmail()">Email feedback</a>
如果我这样称呼它,页面会变成空白,看起来它正在尝试无限加载空白页面:
<a href="javascript:sendEmail()">Email feedback</a>
在这里看到噩梦:http: //kingston.talking-newspapers.co.uk/
现在,我知道这里和其他地方有1001篇文章和评论说"不要使用浏览器嗅探器,它们可以被欺骗(等等)",但老实说,你必须相信我这是一个非常有用的工具当你当他们点击错误的窗口开始时,他们会在更多的"高年级"谈论某人并通过"帮助>关于"使用屏幕阅读器!
我在网站上使用jquery,我知道$ jQuery.browser和$ jQuery.support,但这些并没有告诉我我需要的元素(比如是否安装了Flash,以及版本等).我到处寻找一个jquery插件来满足我的需求,没有运气.
最后,如果我必须坚持jsbrwsniff的当前方法,那么它不是世界末日,但如果有人知道启动用户的电子邮件客户端填充我需要的信息但没有刷新或消隐页面的方式,我'我喜欢知道.
顺便说一句 - 有一个很好的理由不使用网络表单,这仅仅是因为屏幕阅读器用户更容易使用他们习惯的电子邮件客户端.
谢谢!
我很想知道如何检查iPhone,iPad和其他移动浏览器.(JavaScript或CSS)
编辑:
请不是用户代理字符串.这可能是假的.
可能的欺骗:
javascript browser-detection device-detection mobile-browser
我讨厌IE,我只想在我的网站上向IE8 IE7 IE6 IE5.5等用户显示过时的浏览器通知:)
我想检测浏览器版本号是否低于IE8.我对Javascript,HTML,PHP,jQuery持开放态度.我怎么能这样做?
如何检查用户是否在Windows上使用Safari?因为我需要在网站上应用一些特殊的样式.
我正在寻找一种用JavaScript检测Safari的方法.我知道它已被覆盖很多次了,但可能有些东西被改变了,它不再起作用了.至少在我的情况下.
这是我做的:
<script>
if(!isSafari()){
alert('not Safari');
} else {
alert('I am Safari');
}
function isSafari(){
var is_safari = navigator.userAgent.indexOf("Safari") > -1;
if(is_safari){
return true;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
jsbin:http://jsbin.com/ewerof/1
如果您在Safari和Chrome中运行此代码,您将获得相同的警报"我是Safari"那么如何实际检测Safari?我的Safari版本是4.0.3以防万一.
我有一个jQuery代码,适用于Chrome/Mozilla但不适用于IE.
if ($("html").hasClass("ie")) {
$(function(){
$('.green-column, .red-column, .grey-column').click(function() {
alert ($(this).attr("data-type"));
});
});
}
else {
$(function(){
$('.green-column, .red-column, .grey-column').click(function() {
$("<div title='Selected Task is:'>" + $(this).attr("data-type") + "</div>").dialog({
modal: true,
resizable: false,
buttons: [
{
text: "OK",
click: function() { $( this ).dialog( "close" ); }
}
]
});
});
});
}
</script>
<!--[if IE 7]> <html lang="en-us" class="ie"> <![endif]-->
<!--[if IE 8]> <html lang="en-us" class="ie"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en-us" class="ie"> <!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)
所以我计划使用IE9/IE10的警报,但我无法区分浏览器.谁能告诉我如何在jQuery/HTML中识别IE9/IE10?
我把这个正则表达式放在一起,它应该只返回一个匹配,其中用户代理字符串是IE 5,6,7和8.显然,这里的主要目标之一是避免混淆IE11用户代理字符串..
这个正则表达式是否有效(我错过了什么)?
.*MSIE [5-8]\b((?!Trident/4.0)).*
Run Code Online (Sandbox Code Playgroud)
UPDATE
下面匹配5,6,7和8的所有用户代理字符串.9,10中没有匹配.但它确实与IE11匹配,使用Request.UserAgent从.Net返回
'Mozilla/4.0(兼容; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729 )"
^.*MSIE [5-8](?:\.[0-9]+)?(?!.*Trident\/6\.0\)).*$
Run Code Online (Sandbox Code Playgroud)