在javascript中检测webkit浏览器?

编辑:我实际上使用PHP来检测和创建一个带有php标签的局部变量。

if ( strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'webkit')) { $is_webkit = "true"; } 

如何检测浏览器是否基于webkit? (谷歌浏览器,更新的歌剧,safari);

我试过这个:

 var isWebkit = (window.webkitURL != null); if(isWebkit){ alert("i am a webkit based browser!"); } 

不适用于safari

它们的基本都是: w3school JS 。

码:

  

但是这不确定-webkit-。

这是一个小提琴,我的意思是-webkit-浏览器警报的小提琴! (对于Chrome,仅适用于Safari;尚不支持Opera 15+!) jsfiddle。

这是一个jQuery代码,为此! 试试这个:

 $(document).ready(function(){ /* Get browser */ $.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase()); /* Detect Chrome */ if($.browser.chrome){ /* Do something for Chrome at this point */ /* Finally, if it is Chrome then jQuery thinks it's Safari so we have to tell it isn't */ $.browser.safari = false; } /* Detect Safari */ if($.browser.safari){ /* Do something for Safari */ } }); 

一旦窗口加载,这将显示一个弹出窗口!

最好,最简单易读的解决方案是:

 $.browser.chrome = $.browser.webkit && !!window.chrome; $.browser.safari = $.browser.webkit && !window.chrome; if ($.browser.chrome) alert("You are using Chrome!"); if ($.browser.safari) alert("You are using Safari!"); 

这些是我在某些网站上发现的基础知识:

  1. w3schools.com
  2. stackoverflow (我用这个网站找到小提琴。

解决方案非常简单

 if(navigator.userAgent.indexOf('AppleWebKit') != -1){ //this is webkit! } 

AppleWebKit是webkit呈现引擎的名称,因此每个基于webkit的浏览器都必须包含此字符串

有关浏览器检测和用户代理的MDN页面

但如果您需要有关用户浏览器引擎的可信信息,您可能希望使用此:

 if(typeof window.webkitConvertPointFromNodeToPage === 'function'){ // this is webkit (really it is) } 

说明:userAgent属性很容易被欺骗,因此检查特定属性是一种更好的方法。 但它并非无缺陷,早期版本的safari(4.0之前)没有这样的属性。 Chrome支持webkitConvertPointFromNodeToPage,因为第一个版本,opera支持这个以及它的引擎转移到webkit

从这篇文章: 如何检测chrome和safari浏览器(webkit)

 var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor); var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor); if (isChrome) alert("You are using Chrome!"); if (isSafari) alert("You are using Safari!"); 

或者更一般的webkit:

 var isWebkit = /webkit/.test( navigator.userAgent ); 

您应该使用Modernizr之类的function进行function检测。

 alert('webkitRequestAnimationFrame' in window); 

在Chrome 48(true),Safari 9.0.2(true),Opera 35(true),Firefox 44.0.2(false)中持续测试

为了知道它是否是一般的webkit:

 isWebkit = /(safari|chrome)/.test(navigator.userAgent.toLowerCase()); 

safari这个词可能同时出现在chrome和safari中。