编辑: 我实际上使用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
答案 0 :(得分:9)
解决方案很简单
if(navigator.userAgent.indexOf('AppleWebKit') != -1){
//this is webkit!
}
AppleWebKit是webkit呈现引擎的名称,因此每个基于webkit的浏览器都必须包含此字符串
MDN page about browser detection & user agent
但是如果您需要有关用户浏览器引擎的可信信息,您可能需要使用它:
if(typeof window.webkitConvertPointFromNodeToPage === 'function'){
// this is webkit (really it is)
}
说明:userAgent属性很容易被欺骗,因此检查特定属性是一种更好的方法。 但它并非无缺陷,早期版本的safari(4.0之前)没有这样的属性。 Chrome支持webkitConvertPointFromNodeToPage,因为第一个版本,opera支持这个以及它的引擎转移到webkit
答案 1 :(得分:1)
来自此帖子: How to detect chrome and safari browser (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等功能进行功能检测。
答案 2 :(得分: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!");
这些是我在某些网站上发现的基础知识:
答案 3 :(得分:1)
alert('webkitRequestAnimationFrame' in window);
在Chrome 48(true),Safari 9.0.2(true),Opera 35(true)中持续测试, Firefox 44.0.2(false)
答案 4 :(得分:0)
为了知道它是否是一般的webkit:
isWebkit = /(safari|chrome)/.test(navigator.userAgent.toLowerCase());
safari这个词可能同时出现在chrome和safari中。