feat: Restore CSS injection functionality

This commit is contained in:
Gabe
2025-11-06 23:33:49 +08:00
parent 89b2bbe9ac
commit fd7c663282
5 changed files with 22 additions and 11 deletions

View File

@@ -804,9 +804,9 @@ export const I18N = {
zh_TW: `注入 CSS`, zh_TW: `注入 CSS`,
}, },
inject_css_helper: { inject_css_helper: {
zh: `初始化时注入运行,一个页面仅运行一次。`, zh: `预加载时注入,一个页面仅运行一次。`,
en: `Injected and run at initialization, and only run once per page.`, en: `Injected during preload, runs only once per page.`,
zh_TW: `初始化時注入運行,一個頁面僅運行一次。`, zh_TW: `預先載入時注入,一個頁面僅運行一次。`,
}, },
fixer_function: { fixer_function: {
zh: `修复函数`, zh: `修复函数`,

View File

@@ -112,7 +112,7 @@ export const GLOBLA_RULE = {
parentStyle: DEFAULT_SELECT_STYLE, // 选择器父节点样式 parentStyle: DEFAULT_SELECT_STYLE, // 选择器父节点样式
grandStyle: DEFAULT_SELECT_STYLE, // 选择器祖节点样式 grandStyle: DEFAULT_SELECT_STYLE, // 选择器祖节点样式
injectJs: "", // 注入JS injectJs: "", // 注入JS
// injectCss: "", // 注入CSS(作废) injectCss: "", // 注入CSS
transOnly: "false", // 是否仅显示译文 transOnly: "false", // 是否仅显示译文
// transTiming: OPT_TIMING_PAGESCROLL, // 翻译时机/鼠标悬停翻译 (暂时作废) // transTiming: OPT_TIMING_PAGESCROLL, // 翻译时机/鼠标悬停翻译 (暂时作废)
transTag: DEFAULT_TRANS_TAG, // 译文元素标签 transTag: DEFAULT_TRANS_TAG, // 译文元素标签

View File

@@ -58,7 +58,7 @@ export const matchRule = async (href, { injectRules, subrulesList }) => {
"parentStyle", "parentStyle",
"grandStyle", "grandStyle",
"injectJs", "injectJs",
// "injectCss", "injectCss",
"transStartHook", "transStartHook",
"transEndHook", "transEndHook",
// "transRemoveHook", // "transRemoveHook",
@@ -138,7 +138,7 @@ export const checkRules = (rules) => {
parentStyle, parentStyle,
grandStyle, grandStyle,
injectJs, injectJs,
// injectCss, injectCss,
apiSlug, apiSlug,
fromLang, fromLang,
toLang, toLang,
@@ -171,7 +171,7 @@ export const checkRules = (rules) => {
parentStyle: type(parentStyle) === "string" ? parentStyle : "", parentStyle: type(parentStyle) === "string" ? parentStyle : "",
grandStyle: type(grandStyle) === "string" ? grandStyle : "", grandStyle: type(grandStyle) === "string" ? grandStyle : "",
injectJs: type(injectJs) === "string" ? injectJs : "", injectJs: type(injectJs) === "string" ? injectJs : "",
// injectCss: type(injectCss) === "string" ? injectCss : "", injectCss: type(injectCss) === "string" ? injectCss : "",
apiSlug: apiSlug:
type(apiSlug) === "string" && apiSlug.trim() !== "" type(apiSlug) === "string" && apiSlug.trim() !== ""
? apiSlug.trim() ? apiSlug.trim()

View File

@@ -13,6 +13,7 @@ import {
OPT_SPLIT_PARAGRAPH_PUNCTUATION, OPT_SPLIT_PARAGRAPH_PUNCTUATION,
OPT_SPLIT_PARAGRAPH_DISABLE, OPT_SPLIT_PARAGRAPH_DISABLE,
OPT_SPLIT_PARAGRAPH_TEXTLENGTH, OPT_SPLIT_PARAGRAPH_TEXTLENGTH,
MSG_INJECT_CSS,
} from "../config"; } from "../config";
import { interpreter } from "./interpreter"; import { interpreter } from "./interpreter";
import { clearFetchPool } from "./pool"; import { clearFetchPool } from "./pool";
@@ -26,6 +27,9 @@ import { shortcutRegister } from "./shortcut";
import { tryDetectLang } from "./detect"; import { tryDetectLang } from "./detect";
import { trustedTypesHelper } from "./trustedTypes"; import { trustedTypesHelper } from "./trustedTypes";
import { injectJs, INJECTOR } from "../injectors"; import { injectJs, INJECTOR } from "../injectors";
import { injectInternalCss } from "./injector";
import { isExt } from "./client";
import { sendBgMsg } from "./msg";
/** /**
* @class Translator * @class Translator
@@ -1624,7 +1628,14 @@ export class Translator {
// injectCss && injectInternalCss(injectCss); // injectCss && injectInternalCss(injectCss);
// } // }
const { injectJs, toLang } = this.#rule; const { injectJs, injectCss, toLang } = this.#rule;
if (isExt) {
injectCss && sendBgMsg(MSG_INJECT_CSS, injectCss);
} else {
injectCss && injectInternalCss(injectCss);
}
if (injectJs?.trim()) { if (injectJs?.trim()) {
const apiSetting = { ...this.#apiSetting }; const apiSetting = { ...this.#apiSetting };
const docInfo = { ...this.#docInfo }; const docInfo = { ...this.#docInfo };

View File

@@ -106,7 +106,7 @@ function RuleFields({ rule, rules, setShow, setKeyword }) {
parentStyle = "", parentStyle = "",
grandStyle = "", grandStyle = "",
injectJs = "", injectJs = "",
// injectCss = "", injectCss = "",
apiSlug, apiSlug,
fromLang, fromLang,
toLang, toLang,
@@ -651,7 +651,7 @@ function RuleFields({ rule, rules, setShow, setKeyword }) {
maxRows={10} maxRows={10}
/> */} /> */}
{/* <TextField <TextField
size="small" size="small"
label={i18n("inject_css")} label={i18n("inject_css")}
helperText={i18n("inject_css_helper")} helperText={i18n("inject_css_helper")}
@@ -661,7 +661,7 @@ function RuleFields({ rule, rules, setShow, setKeyword }) {
onChange={handleChange} onChange={handleChange}
maxRows={10} maxRows={10}
multiline multiline
/> */} />
<TextField <TextField
size="small" size="small"
label={i18n("inject_js")} label={i18n("inject_js")}