更新库,加入core-js

This commit is contained in:
枫谷剑仙 2024-07-23 19:08:54 +08:00
parent 90e78316c2
commit b2db780063
10 changed files with 115 additions and 93 deletions

View File

@ -1,4 +1,4 @@
const unsupportFeatures = (()=>{
(()=>{
function runCodeWithFunction(obj) {
return Function(`"use strict"; return (${obj})`)();
}
@ -22,8 +22,9 @@
{name: "Private class fields (#name) / 类私有域(#name)", version:{firefox:90,chrome:74,safari:14.5}, url: "https://caniuse.com/mdn-javascript_classes_private_class_fields", test: ()=>Boolean(runCodeWithFunction("class test {#v = 0;}, true"))},
{name: "Dialog element / Dialog 元素", version:{firefox:98,chrome:37,safari:15.4}, url: "https://caniuse.com/dialog", test: ()=>Boolean(window.HTMLDialogElement)},
// {name: "Class static initialization blocks / 静态初始化块", version:{firefox:93,chrome:94,safari:16.4}, url: "https://caniuse.com/mdn-javascript_classes_static_initialization_blocks", test: ()=>supportsPseudoClass(":not(html)")},
]
return features.filter(feature=>{
];
const unsupportFeatures = features.filter(feature=>{
try {
return !feature.test();
} catch (e) {
@ -31,86 +32,87 @@
console.error(e);
return true;
}
})
})();
});
if (unsupportFeatures.length) {
const browserVersion = ((UA)=>{
let regRes;
if (regRes = /\b(Firefox|Chrome)\/([\d\.]+)/ig.exec(UA)) {
return `${regRes[1]} ${regRes[2]}`;
} else if (regRes = /\bVersion\/([\d\.]+)\s+.*\b(Safari)\//ig.exec(UA)) {
return `${regRes[2]} ${regRes[1]}`;
} else {
UA;
}
})(navigator.userAgent);
//支持的最低版本
const needBrowserVersion = unsupportFeatures.reduce((pre,{version})=>{
pre.firefox = Math.max(pre.firefox,version.firefox);
pre.chrome = Math.max(pre.chrome,version.chrome);
pre.safari = Math.max(pre.safari,version.safari);
return pre;
}, {firefox:0,chrome:0,safari:0});
let alertStr;
if (/^zh-(?:han(?:s|t)-)?/.test(navigator.language)) {
alertStr =
`<div>🙁浏览器内核版本太老<br>
if (unsupportFeatures.length) {
const browserVersion = ((UA)=>{
let regRes;
if (regRes = /\b(Firefox|Chrome)\/([\d\.]+)/ig.exec(UA)) {
return `${regRes[1]} ${regRes[2]}`;
} else if (regRes = /\bVersion\/([\d\.]+)\s+.*\b(Safari)\//ig.exec(UA)) {
return `${regRes[2]} ${regRes[1]}`;
} else {
UA;
}
})(navigator.userAgent);
//支持的最低版本
const needBrowserVersion = unsupportFeatures.reduce((pre,{version})=>{
pre.firefox = Math.max(pre.firefox,version.firefox);
pre.chrome = Math.max(pre.chrome,version.chrome);
pre.safari = Math.max(pre.safari,version.safari);
return pre;
}, {firefox:0,chrome:0,safari:0});
let alertStr;
if (/^zh-(?:han(?:s|t)-)?/.test(navigator.language)) {
alertStr =
`<p lang="zh">🙁浏览器内核版本太老<br>
您的浏览器版本为: ${browserVersion}<br>
您的浏览器内核不支持本程序使用的以下技术
<ol>
${unsupportFeatures.map(feature=>`<li><a href="${feature.url}">${feature.name}</a></li>`).join('')}
</ol>
请更新您的浏览器内核到 Firefox(火狐) ${needBrowserVersion.firefox} Chrome(谷歌) ${needBrowserVersion.chrome} Safari ${needBrowserVersion.safari}</div>`;
} else {
alertStr =
`<div>🙁Browser kernel is too old<br>
请更新您的浏览器内核到 Firefox(火狐) ${needBrowserVersion.firefox} Chrome(谷歌) ${needBrowserVersion.chrome} Safari ${needBrowserVersion.safari}</p>`;
} else {
alertStr =
`<p lang="en">🙁Browser kernel is too old<br>
Your browser is: ${browserVersion}<br>
Your browser kernel does not support the following technologies used by this program:
<ol>
${unsupportFeatures.map(feature=>`<li><a href="${feature.url}">${feature.name}</a></li>`).join('')}
</ol>
Please update your browser core to Firefox ${needBrowserVersion.firefox} or Chrome ${needBrowserVersion.chrome} or Safari ${needBrowserVersion.safari}</div>`;
Please update your browser core to Firefox ${needBrowserVersion.firefox} or Chrome ${needBrowserVersion.chrome} or Safari ${needBrowserVersion.safari}</p>`;
}
//alert(alertStr);
document.write(alertStr);
}
//alert(alertStr);
document.write(alertStr);
}
if (/\b(?:MicroMessenger|WeChat|Weixin|QQ|AliApp)\b/.test(navigator.userAgent)) {
const mask = document.createElement("div");
mask.id = "denied-mask";
const css = `
#denied-mask {
position: fixed;
height: 100%;
width: 100%;
top: 0;
left: 0;
background-color: #000A;
if (/\b(?:MicroMessenger|WeChat|Weixin|QQ|AliApp)\b/.test(navigator.userAgent)) {
const mask = document.createElement("div");
mask.id = "denied-mask";
const css = `
#denied-mask {
position: fixed;
height: 100%;
width: 100%;
top: 0;
left: 0;
background-color: #000A;
}
.alert {
font-size: 2em;
font-weight: bold;
color: white;
text-align: center;
}
`;
const style = mask.appendChild(document.createElement("style"));
style.appendChild(document.createTextNode(css));
const alertDiv = mask.appendChild(document.createElement("div"));
alertDiv.className = "alert";
alertDiv.innerHTML = `请勿使用APP内置浏览器会有功能缺失<br>点击菜单使用正常浏览器打开↗`;
const removeMe = mask.appendChild(document.createElement("button"));
removeMe.append("我知道了");
removeMe.onclick = ()=>{
mask.remove();
delete mask;
};
const event = window.addEventListener("load", ()=>{
document.body.appendChild(mask);
window.removeEventListener(event);
});
}
.alert {
font-size: 2em;
font-weight: bold;
color: white;
text-align: center;
}
`;
const style = mask.appendChild(document.createElement("style"));
style.appendChild(document.createTextNode(css));
const alertDiv = mask.appendChild(document.createElement("div"));
alertDiv.className = "alert";
alertDiv.innerHTML = `请勿使用内置浏览<br>点击菜单使用正常浏览器打开↗`;
const removeMe = mask.appendChild(document.createElement("button"));
removeMe.append("我知道了");
removeMe.onclick = ()=>{
mask.remove();
delete mask;
};
})
const event = window.addEventListener("load", ()=>{
document.body.appendChild(mask);
window.removeEventListener(event);
});
}

15
library/core-js.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -10,6 +10,7 @@
<link href="style.css" rel="stylesheet" type="text/css">
<link href="style-monsterimages.css" rel="stylesheet" type="text/css">
<link id="language-css" href="languages/en.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="library/core-js.min.js"></script>
<script type="text/javascript">
const solo = false;
const teamsCount = 2;

View File

@ -2,9 +2,10 @@
"dependencies": {
"@html2canvas/html2canvas": "^1.6.3",
"@xmldom/xmldom": "^0.8.10",
"@zxing/library": "^0.21.1",
"mime": "^4.0.3",
"@zxing/library": "^0.21.2",
"core-js-bundle": "^3.31.1",
"mime": "^4.0.4",
"opencc-js": "^1.0.5",
"xml-formatter": "^3.6.2"
"xml-formatter": "^3.6.3"
}
}

View File

@ -29,18 +29,15 @@ const GM_xmlhttpRequest = function(GM_param) {
};
//获取URL参数
function getQueryString(name, url) {
const urlObj = new URL(url || document.location);
function getQueryString(name, inputURL = document.location) {
const url = new URL(inputURL);
if (!Array.isArray(name)) name = [name];
const n_e = name.entries();
let n, value;
do {
n = n_e.next();
if (!n.done)
{
value = urlObj.searchParams.get(n.value[1]);
}
}while(!n.done && value === undefined)
//可以以数组形式传递 name 的多个别名,比如 getQueryString(["l","lang"])
let value;
for (let index = 0; index < name.length; index++) {
value = url.searchParams.get(name[index]);
if (value) break;
}
return value;
}

View File

@ -24,7 +24,7 @@ const dataStructure = 5; //阵型输出数据的结构版本
const cfgPrefix = "PADDF-"; //设置名称的前缀
const className_displayNone = "display-none";
const dataAttrName = "data-value"; //用于储存默认数据的属性名
const isGuideMod = !unsupportFeatures.length && Boolean(Number(getQueryString("guide"))); //是否以图鉴模式启动
const isGuideMod = Boolean(Number(getQueryString("guide"))); //是否以图鉴模式启动
//用油猴扩展装上把GM_xmlhttpRequest引入的脚本
const ExternalLinkScriptURL = "https://greasyfork.org/scripts/458521";

View File

@ -6075,7 +6075,7 @@ const cachesMap = new Map([
],
[
"sound/voice/ja/padv2191.wav",
"d07c2fc9a621d4345c053f3d2187a937"
"143e052f3c15efaadaf7eaae277c68e7"
],
[
"sound/voice/ja/padv2192.wav",
@ -30215,7 +30215,7 @@ const cachesMap = new Map([
],
[
"browser-compatibility.js",
"7080930e96f7e1f6897642ce00b34853"
"13ffac54abcdd4a8135f0352db1e485b"
],
[
"index.html",
@ -30223,7 +30223,7 @@ const cachesMap = new Map([
],
[
"multi.html",
"4cc20691292d1223c04009fda1e7cdaa"
"843cdcc9b713e4eb4fd1e43af325397e"
],
[
"script-custom_elements.js",
@ -30247,7 +30247,7 @@ const cachesMap = new Map([
],
[
"solo.html",
"5c53f3d02e7ac97625fda4e102cefe5d"
"99e0b0f844d6b57119a1e87b73313329"
],
[
"style-monsterimages.css",
@ -30263,7 +30263,7 @@ const cachesMap = new Map([
],
[
"triple.html",
"95041cfe3b8814a7adaa454d7302b778"
"596d1bff6d2c26c85d3633d338a62ef7"
],
[
"languages/en.css",
@ -30473,13 +30473,17 @@ const cachesMap = new Map([
"images/type.png",
"6b1eadf2c9faf6ac18522bd49a50a400"
],
[
"library/core-js.min.js",
"f67a060d45569816fe1e15e007a197a4"
],
[
"library/html2canvas.min.js",
"a692cfc262fd4a43738caf3edf2c7a3d"
],
[
"library/zxing.umd.min.js",
"ce1ec54f24b569dfc71e20bcb806044e"
"e5b53f686f2beea4012dd076c6c93d81"
],
[
"library/jy4340132-aaa/adpcm.js",

View File

@ -10,6 +10,7 @@
<link href="style.css" rel="stylesheet" type="text/css">
<link href="style-monsterimages.css" rel="stylesheet" type="text/css">
<link id="language-css" href="languages/en.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="library/core-js.min.js"></script>
<script type="text/javascript">
const solo = true;
const teamsCount = 1;

View File

@ -10,6 +10,7 @@
<link href="style.css" rel="stylesheet" type="text/css">
<link href="style-monsterimages.css" rel="stylesheet" type="text/css">
<link id="language-css" href="languages/en.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="library/core-js.min.js"></script>
<script type="text/javascript">
const solo = false;
const teamsCount = 3;