Browse Source

优化浏览器判断代码

tags/v21.0
枫谷剑仙 4 years ago
parent
commit
0d017948d2
1 changed files with 18 additions and 9 deletions
  1. +18
    -9
      browser-compatibility.js

+ 18
- 9
browser-compatibility.js View File

@@ -1,38 +1,47 @@
let needUpdateBrowser = (()=>{
try {
return !Boolean(eval("undefined?.undefined?.undefined ?? true"));
return !Boolean(eval("undefined?.undefined ?? true"));
} catch (e) {
if (e.name !== 'SyntaxError') throw e // Throw the error if it is not a SyntaxError
return true;
}
}
)();
})();
if (needUpdateBrowser)
{
let browserVersion = ((UA)=>{
let regRes;
if (regRes = /\b(Firefox|Chrome)\/([\d\.]+)/ig.exec(navigator.userAgent))
if (regRes = /\b(Firefox|Chrome)\/([\d\.]+)/ig.exec(UA))
{
return `${regRes[1]} ${regRes[2]}`;
}else if (regRes = /\bVersion\/([\d\.]+)\s+.*\b(Safari)\//ig.exec(navigator.userAgent))
}else if (regRes = /\bVersion\/([\d\.]+)\s+.*\b(Safari)\//ig.exec(UA))
{
return `${regRes[2]} ${regRes[1]}`;
}else
{
navigator.userAgent;
UA;
}
})(navigator.userAgent);
let alertStr = `🙁浏览器内核版本太老 | Browser kernel is too old
您的浏览器版本为 | Your browser is:
let alertStr;
if (/^zh-(?:han(?:s|t)-)?/.test(navigator.language)) {
alertStr = `🙁浏览器内核版本太老
您的浏览器版本为:
${browserVersion}
您的浏览器不支持本程序使用的 可选链操作符(?.) 和 空值合并操作符(??)。
请更新您的浏览器到 Firefox(火狐) ≥ 74 或 Chrome(谷歌) ≥ 80 或 Safari(苹果) ≥ 13.1。`;
} else {
alertStr = `🙁Browser kernel is too old
Your browser is:
${browserVersion}
Your browser does not support Optional chaining (?.) and Nullish coalescing operator (??) used in this program.
请更新您的浏览器到 Firefox(火狐) ≥ 74 或 Chrome(谷歌) ≥ 80 或 Safari(苹果) ≥ 13.1。
Please update your browser to Firefox ≥ 74 or Chrome ≥ 80 or Safari ≥ 13.1.`;
}
alert(alertStr);
document.write(alertStr.replace(/\n/g,'<br />'));
}

Loading…
Cancel
Save