From 855754ba8b8d98e47ce4099df2207c97393912f4 Mon Sep 17 00:00:00 2001 From: cyfung1031 <44498510+cyfung1031@users.noreply.github.com> Date: Fri, 6 Feb 2026 13:57:55 +0900 Subject: [PATCH] =?UTF-8?q?[v1.3]=20=E6=94=B9=E8=89=AF=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=20-=20.load=20/=20.loadend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/service/content/gm_api/gm_xhr.ts | 4 +++- src/app/service/content/scripting.ts | 9 +++++---- src/app/service/service_worker/resource.ts | 6 +++--- src/pkg/utils/crypto.ts | 6 +++--- src/pkg/utils/datatype.ts | 4 ++-- src/pkg/utils/utils.ts | 8 ++++++-- 6 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/app/service/content/gm_api/gm_xhr.ts b/src/app/service/content/gm_api/gm_xhr.ts index da4312886..a80dfad96 100644 --- a/src/app/service/content/gm_api/gm_xhr.ts +++ b/src/app/service/content/gm_api/gm_xhr.ts @@ -71,7 +71,9 @@ export const toBlobURL = (a: GMApi, blob: Blob): Promise | string => { export const blobToDataURL = (blob: Blob): Promise => { return new Promise((resolve, reject) => { const reader = new FileReader(); - reader.onload = () => resolve(reader.result as string); + reader.onloadend = function () { + resolve(this.result); + }; reader.onerror = reject; reader.onabort = reject; reader.readAsDataURL(blob); diff --git a/src/app/service/content/scripting.ts b/src/app/service/content/scripting.ts index 17d1b0a84..dd24079ea 100644 --- a/src/app/service/content/scripting.ts +++ b/src/app/service/content/scripting.ts @@ -81,15 +81,16 @@ export default class ScriptingRuntime { } case "CAT_fetchDocument": { const [url, isContent] = data.params; + // 根据来源选择不同的消息桥(content / inject) + let msg: CustomEventMessage | null = isContent ? this.senderToContent : this.senderToInject; return new Promise((resolve) => { const xhr = new XMLHttpRequest(); xhr.responseType = "document"; xhr.open("GET", url); - xhr.onload = () => { - // 根据来源选择不同的消息桥(content / inject) - const msg = isContent ? this.senderToContent : this.senderToInject; - const nodeId = msg.sendRelatedTarget(xhr.response); + xhr.onloadend = function () { + const nodeId = msg!.sendRelatedTarget(this.response); resolve(nodeId); + msg = null; }; xhr.send(); }); diff --git a/src/app/service/service_worker/resource.ts b/src/app/service/service_worker/resource.ts index f82bad975..ce94a773d 100644 --- a/src/app/service/service_worker/resource.ts +++ b/src/app/service/service_worker/resource.ts @@ -241,8 +241,8 @@ export class ResourceService { return new Promise((resolve) => { const reader = new FileReader(); reader.readAsArrayBuffer(blob); - reader.onloadend = () => { - if (!reader.result) { + reader.onloadend = function () { + if (!this.result) { resolve({ md5: "", sha1: "", @@ -251,7 +251,7 @@ export class ResourceService { sha512: "", }); } else { - resolve(calculateHashFromArrayBuffer(reader.result)); + resolve(calculateHashFromArrayBuffer(this.result)); } }; }); diff --git a/src/pkg/utils/crypto.ts b/src/pkg/utils/crypto.ts index e55692870..05ffdf05f 100644 --- a/src/pkg/utils/crypto.ts +++ b/src/pkg/utils/crypto.ts @@ -5,11 +5,11 @@ export function calculateMd5(blob: Blob) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsArrayBuffer(blob); - reader.onloadend = () => { - if (!reader.result) { + reader.onloadend = function () { + if (!this.result) { reject(new Error("result is null")); } else { - const result = calculateMD5FromArrayBuffer(reader.result); + const result = calculateMD5FromArrayBuffer(this.result); resolve(result); } }; diff --git a/src/pkg/utils/datatype.ts b/src/pkg/utils/datatype.ts index e713e27f4..c214ced9d 100644 --- a/src/pkg/utils/datatype.ts +++ b/src/pkg/utils/datatype.ts @@ -5,8 +5,8 @@ export const blobToUint8Array = async (blob: Blob): Promise { const reader = new FileReader(); - reader.onload = () => { - resolve(new Uint8Array(reader.result as ArrayBuffer)); + reader.onloadend = function () { + resolve(new Uint8Array(this.result as ArrayBuffer)); }; reader.onerror = reject; reader.readAsArrayBuffer(blob); diff --git a/src/pkg/utils/utils.ts b/src/pkg/utils/utils.ts index 350913a6b..479030752 100644 --- a/src/pkg/utils/utils.ts +++ b/src/pkg/utils/utils.ts @@ -327,7 +327,9 @@ export const makeBlobURL = ( export function blobToBase64(blob: Blob): Promise { return new Promise((resolve) => { const reader = new FileReader(); - reader.onloadend = () => resolve(reader.result); + reader.onloadend = function () { + resolve(this.result); + }; reader.readAsDataURL(blob); }); } @@ -336,7 +338,9 @@ export function blobToBase64(blob: Blob): Promise { export function blobToText(blob: Blob): Promise { return new Promise((resolve) => { const reader = new FileReader(); - reader.onloadend = () => resolve(reader.result); + reader.onloadend = function () { + resolve(this.result); + }; reader.readAsText(blob); }); }