fix: inject js/css

This commit is contained in:
Gabe Yuan
2024-03-15 10:35:30 +08:00
parent 83e9c1dd97
commit 45127646e8
4 changed files with 28 additions and 11 deletions

View File

@@ -20,6 +20,8 @@ import { debounce, genEventName } from "./utils";
import { runFixer } from "./webfix";
import { apiTranslate } from "../apis";
import { sendBgMsg } from "./msg";
import { isExt } from "./client";
import { injectInlineJs, injectInternalCss } from "./injector";
/**
* 翻译类
@@ -276,8 +278,13 @@ export class Translator {
}
// 注入用户JS/CSS
injectJs && sendBgMsg(MSG_INJECT_JS, injectJs);
injectCss && sendBgMsg(MSG_INJECT_CSS, injectCss);
if (isExt) {
injectJs && sendBgMsg(MSG_INJECT_JS, injectJs);
injectCss && sendBgMsg(MSG_INJECT_CSS, injectCss);
} else {
injectJs && injectInlineJs(injectJs);
injectCss && injectInternalCss(injectCss);
}
// 搜索节点
this._queryNodes();
@@ -406,9 +413,7 @@ export class Translator {
});
// 移除用户JS/CSS
document
.querySelectorAll(`[data-source^="KISS-Calendar"]`)
?.forEach((el) => el.remove());
this._removeInjector();
// 清空节点集合
this._rootNodes.clear();
@@ -418,8 +423,15 @@ export class Translator {
clearFetchPool();
};
_removeInjector = () => {
document
.querySelectorAll(`[data-source^="KISS-Calendar"]`)
?.forEach((el) => el.remove());
};
_reTranslate = debounce(() => {
if (this._rule.transOpen === "true") {
this._removeInjector();
this._register();
}
}, 500);