jea*_*las 16 javascript browser google-chrome
正如标题所述,我有兴趣找到一个基于安全功能(即不使用navigator.appName或navigator.appVersion)的方式来检测谷歌浏览器.
基于特征我的意思是,例如:
if(window.ActiveXObject) {
// internet explorer!
}
Run Code Online (Sandbox Code Playgroud)
编辑:正如已经指出的那样,问题没有多大意义(显然,如果你想实现一个功能,你要测试它,如果你想检测一个特定的浏览器,你检查用户代理),对不起,这是凌晨5点;)让我这样说:Chrome是否有任何javascript对象和/或功能...
pco*_*ran 32
isChrome = function() {
return Boolean(window.chrome);
}
Run Code Online (Sandbox Code Playgroud)
这个答案已经过时了,但在石器时代它非常相关.
我认为特征检测比navigator.userAgent解析更有用,因为我在这里搜索了Opera的模糊性.没人能知道IE16是否会解析/ MSIE 16.0;/regexp - 但我们可以肯定的是,会有document.all支持.在现实生活中,这些功能通常是浏览器的同义词,例如:"没有XMLHttpRequest?它是f ...... d IE6!" 没有nonIE浏览器支持document.all,但是像Maxthon这样的浏览器可以加扰userAgent.(当然脚本可以出于某种原因在Firefox中定义document.all,但它很容易控制.)因此我建议这个解决方案.
编辑 在这里我找到了完整的资源
编辑2我已经测试了该文档.Opera也支持它!
var is = {
ff: window.globalStorage,
ie: document.all && !window.opera,
ie6: !window.XMLHttpRequest,
ie7: document.all && window.XMLHttpRequest && !XDomainRequest && !window.opera,
ie8: document.documentMode==8,
opera: Boolean(window.opera),
chrome: Boolean(window.chrome),
safari: window.getComputedStyle && !window.globalStorage && !window.opera
}
Run Code Online (Sandbox Code Playgroud)
使用很简单:
if(is.ie6) { ... }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23823 次 |
最近记录: |