Skip to content

Commit 553b944

Browse files
committed
🐛 修复GM.xmlHttpRequest的onload事件 #570
1 parent 9ea0708 commit 553b944

2 files changed

Lines changed: 8 additions & 0 deletions

File tree

src/app/service/content/gm_api.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,10 +806,14 @@ export default class GMApi extends GM_Base {
806806
public ["GM.xmlHttpRequest"](details: GMTypes.XHRDetails): Promise<GMTypes.XHRResponse> {
807807
let abort: { abort: () => void };
808808
const ret = new Promise<GMTypes.XHRResponse>((resolve, reject) => {
809+
const oldOnload = details.onload;
809810
details.onloadend = (xhr: GMTypes.XHRResponse) => {
811+
oldOnload && oldOnload(xhr);
810812
resolve(xhr);
811813
};
814+
const oldOnerror = details.onerror;
812815
details.onerror = (error: any) => {
816+
oldOnerror && oldOnerror(error);
813817
reject(error);
814818
};
815819
abort = _GM_xmlhttpRequest(this, details);

src/pkg/utils/match.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ describe("UrlMatch-google", () => {
1010
url.add("https://example.org/foo/bar.html", "ok4");
1111
url.add("http://127.0.0.1/*", "ok5");
1212
url.add("*://mail.google.com/*", "ok6");
13+
url.exclude("https://example-2.org/foo/bar.html", "ok1");
1314
it("match1", () => {
1415
expect(url.match("https://www.google.com/")).toEqual(["ok1"]);
1516
expect(url.match("https://example.org/foo/bar.html")).toEqual(["ok1", "ok2", "ok4"]);
@@ -34,6 +35,9 @@ describe("UrlMatch-google", () => {
3435
expect(url.match("http://mail.google.com/foo/baz/bar")).toEqual(["ok6"]);
3536
expect(url.match("https://mail.google.com/foobar")).toEqual(["ok1", "ok2", "ok3", "ok6"]);
3637
});
38+
it("exclude", () => {
39+
expect(url.match("https://example-2.org/foo/bar.html")).toEqual(["ok2"]);
40+
});
3741
});
3842

3943
describe("UrlMatch-google-error", () => {

0 commit comments

Comments
 (0)