diff --git a/browser-compatibility.js b/browser-compatibility.js index 97c8b8dd..37ef5b1d 100644 --- a/browser-compatibility.js +++ b/browser-compatibility.js @@ -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,'
')); } \ No newline at end of file