5

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

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

如何检测浏览器是否基于 webkit?(谷歌浏览器、较新的 Opera、Safari);

我试过这个:

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

不适用于野生动物园

4

5 回答 5

12

解决方案非常简单

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

于 2014-02-13T14:20:10.990 回答
5
alert('webkitRequestAnimationFrame' in window);

在 Chrome 48 (true)、Safari 9.0.2 (true)、Opera 35 (true)、Firefox 44.0.2 (false) 中一致测试

于 2016-03-04T22:30:48.877 回答
1

来自这篇文章: 如何检测 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 之类的东西进行特征检测。

于 2013-09-04T23:36:17.597 回答
1

它们的基础是:w3school JS

代码:

<script>  
txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";  
txt+= "<p>Browser Name: " + navigator.appName + "</p>";  
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";  
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";  
txt+= "<p>Platform: " + navigator.platform + "</p>";  
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";  
txt+= "<p>User-agent language: " + navigator.systemLanguage + "</p>";  
document.getElementById("example").innerHTML=txt;  
</script>

但这不确定-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(我用这个网站来寻找小提琴。
于 2013-09-04T23:37:17.257 回答
1

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

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

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

于 2015-01-17T20:19:13.107 回答