GM_xmlhttpRequest 封装
ของเมื่อวันที่
สคริปต์นี้ไม่ควรถูกติดตั้งโดยตรง มันเป็นคลังสำหรับสคริปต์อื่น ๆ เพื่อบรรจุด้วยคำสั่งเมทา // @require https://update.greatest.deepsurf.us/scripts/565272/1804285/GM_request.js
(function () {
function GM_request(details) {
const {
onload,
onerror,
onretry,
maxRetries,
currentRetry = 0,
url,
...other
} = details;
return fetch(url, other)
.then((response) => {
if (response.ok) {
return response;
} else {
throw new Error(
`Request failed with status ${response.status}: ${response.statusText}`,
);
}
})
.catch((error) => {
if (maxRetries && currentRetry < maxRetries) {
const retryDetails = {
...details,
currentRetry: currentRetry + 1,
};
onretry?.(retryDetails);
return GM_request(retryDetails);
} else {
onerror?.(error);
return Promise.reject(error);
}
});
}
window.GM_request = GM_request;
})();