本文介绍一种通过JavaScript代码识别浏览器底层引擎的方法。该方案利用WebKit特有的devicePixelRatio属性进行初步筛选,并结合V8引擎中javaEnabled函数的特定字符串特征,区分V8与JSC引擎。此方法适用于PC及移动端浏览器,代码源自StackOverflow,旨在帮助开发者了解不同引擎的实现差异。
JavaScript引擎识别原理
该方法的灵感来源于StackOverflow,具体实现可访问网页http://jsbin.com/opuvas查看,该页面由原回答者自行编写。
访问该网址即可生成二维码。页面内置了访问量统计功能,作者希望了解其对用户群体的实际帮助,因此建议尊重原创,不要直接复制该网页内容。
此检测方案兼容PC端浏览器以及各类移动浏览器。
其核心原理基于以下JavaScript代码实现:
V8与JSC检测代码实现
具体代码逻辑如下:
window.onload = function() {
var v8string = 'function%20javaEnabled%28%29%20%7B%20%5Bnative%20code%5D%20%7D';
if (window.devicePixelRatio) //If WebKit browser
{
if (escape(navigator.javaEnabled.toString()) === v8string)
{
display('V8 detected');
}
else
{
display('JSC detected');
}
}
else {
display("Not a WebKit browser");
}
function display(msg) {
var p = document.createElement('p');
p.innerHTML = msg;
document.body.appendChild(p);
}
}; 该实现首先检测WebKit浏览器特有的devicePixelRatio属性,随后通过检查V8引擎中javaEnabled函数的具体实现特征来区分V8与JSC引擎。