Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中检测webkit浏览器?_Javascript_Jquery_Browser_Webkit - Fatal编程技术网

在javascript中检测webkit浏览器?

在javascript中检测webkit浏览器?,javascript,jquery,browser,webkit,Javascript,Jquery,Browser,Webkit,编辑: 实际上,我使用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 a

编辑: 实际上,我使用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!");
}

不适用于safari,请参见以下帖子:

或更通用的webkit:

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

您真的应该使用Modernizer之类的工具进行功能检测。

它们的基本功能是:

代码:

<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>
这将显示一个弹出窗口,一旦窗口加载

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

$.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!");
这些是我在一些网站上找到的基本知识:

  • (我用这个网站找小提琴

  • 解决方案非常简单

    if(navigator.userAgent.indexOf('AppleWebKit') != -1){
        //this is webkit!
    }
    
    AppleWebKit是webkit渲染引擎的名称,因此每个基于webkit的浏览器都必须包含此字符串

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

    if(typeof window.webkitConvertPointFromNodeToPage === 'function'){
        // this is webkit (really it is)
    }
    
    说明:userAgent属性很容易被欺骗,所以检查特定属性是一种更好的方法。 但它并非没有缺陷,safari的早期版本(4.0之前)没有这样的特性。
    Chrome从第一个版本开始就支持webkitConvertPointFromNodeToPage,opera支持这一点,并将其引擎传输到webkit,以了解它是否是一般的webkit:

    isWebkit = /(safari|chrome)/.test(navigator.userAgent.toLowerCase());
    
    safari一词可能同时出现在chrome和safari中

    alert('webkitRequestAnimationFrame' in window);
    
    在Chrome 48(正确)、Safari 9.0.2(正确)、Opera 35(正确)中进行了一致测试,
    Firefox 44.0.2(false)

    YUNO进行功能检测而不是引擎嗅探?请看这里:您想检查navigator.userAgentwindow.webkitConvertPointFromNodeToPage不推荐使用。
    isWebkit = /(safari|chrome)/.test(navigator.userAgent.toLowerCase());
    
    alert('webkitRequestAnimationFrame' in window);