fix: simplify keepSelector logic
This commit is contained in:
@@ -427,8 +427,8 @@ export const I18N = {
|
|||||||
en: `Keep unchanged selector`,
|
en: `Keep unchanged selector`,
|
||||||
},
|
},
|
||||||
keep_selector_helper: {
|
keep_selector_helper: {
|
||||||
zh: `1、遵循CSS选择器语法。2、子元素选择器用“>>>”隔开。`,
|
zh: `1、遵循CSS选择器语法。`,
|
||||||
en: `1. Follow CSS selector syntax. 2. Sub-element selectors are separated by ">>>".`,
|
en: `1. Follow CSS selector syntax.`,
|
||||||
},
|
},
|
||||||
terms: {
|
terms: {
|
||||||
zh: `专业术语`,
|
zh: `专业术语`,
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ export class Translator {
|
|||||||
];
|
];
|
||||||
_eventName = genEventName();
|
_eventName = genEventName();
|
||||||
_mouseoverNode = null;
|
_mouseoverNode = null;
|
||||||
_keepSelector = [null, null];
|
_keepSelector = "";
|
||||||
_terms = [];
|
_terms = [];
|
||||||
_docTitle = "";
|
_docTitle = "";
|
||||||
|
|
||||||
@@ -125,9 +125,7 @@ export class Translator {
|
|||||||
this._setting = setting;
|
this._setting = setting;
|
||||||
this._rule = rule;
|
this._rule = rule;
|
||||||
|
|
||||||
this._keepSelector = (rule.keepSelector || "")
|
this._keepSelector = rule.keepSelector || "";
|
||||||
.split(SHADOW_KEY)
|
|
||||||
.map((item) => item.trim());
|
|
||||||
this._terms = (rule.terms || "")
|
this._terms = (rule.terms || "")
|
||||||
.split(/\n|;/)
|
.split(/\n|;/)
|
||||||
.map((item) => item.split(",").map((item) => item.trim()))
|
.map((item) => item.split(",").map((item) => item.trim()))
|
||||||
@@ -507,15 +505,11 @@ export class Translator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 保留元素
|
// 保留元素
|
||||||
const [matchSelector, subSelector] = this._keepSelector;
|
const keepSelector = this._keepSelector.trim();
|
||||||
if (matchSelector || subSelector) {
|
if (keepSelector) {
|
||||||
let text = "";
|
let text = "";
|
||||||
el.childNodes.forEach((child) => {
|
el.childNodes.forEach((child) => {
|
||||||
if (
|
if (child.nodeType === 1 && child.matches(keepSelector)) {
|
||||||
child.nodeType === 1 &&
|
|
||||||
((matchSelector && child.matches(matchSelector)) ||
|
|
||||||
(subSelector && child.querySelector(subSelector)))
|
|
||||||
) {
|
|
||||||
if (child.nodeName === "IMG") {
|
if (child.nodeName === "IMG") {
|
||||||
child.style.cssText += `width: ${child.width}px;`;
|
child.style.cssText += `width: ${child.width}px;`;
|
||||||
child.style.cssText += `height: ${child.height}px;`;
|
child.style.cssText += `height: ${child.height}px;`;
|
||||||
|
|||||||
@@ -432,6 +432,34 @@ function RuleFields({ rule, rules, setShow, setKeyword }) {
|
|||||||
</Grid>
|
</Grid>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
|
<TextField
|
||||||
|
size="small"
|
||||||
|
label={i18n("fixer_selector")}
|
||||||
|
name="fixerSelector"
|
||||||
|
value={fixerSelector}
|
||||||
|
disabled={disabled}
|
||||||
|
onChange={handleChange}
|
||||||
|
multiline
|
||||||
|
maxRows={10}
|
||||||
|
/>
|
||||||
|
<TextField
|
||||||
|
select
|
||||||
|
size="small"
|
||||||
|
name="fixerFunc"
|
||||||
|
value={fixerFunc}
|
||||||
|
label={i18n("fixer_function")}
|
||||||
|
helperText={i18n("fixer_function_helper")}
|
||||||
|
disabled={disabled}
|
||||||
|
onChange={handleChange}
|
||||||
|
>
|
||||||
|
{GlobalItem}
|
||||||
|
{FIXER_ALL.map((item) => (
|
||||||
|
<MenuItem key={item} value={item}>
|
||||||
|
{item}
|
||||||
|
</MenuItem>
|
||||||
|
))}
|
||||||
|
</TextField>
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
select
|
select
|
||||||
size="small"
|
size="small"
|
||||||
@@ -464,34 +492,6 @@ function RuleFields({ rule, rules, setShow, setKeyword }) {
|
|||||||
maxRows={10}
|
maxRows={10}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<TextField
|
|
||||||
size="small"
|
|
||||||
label={i18n("fixer_selector")}
|
|
||||||
name="fixerSelector"
|
|
||||||
value={fixerSelector}
|
|
||||||
disabled={disabled}
|
|
||||||
onChange={handleChange}
|
|
||||||
multiline
|
|
||||||
maxRows={10}
|
|
||||||
/>
|
|
||||||
<TextField
|
|
||||||
select
|
|
||||||
size="small"
|
|
||||||
name="fixerFunc"
|
|
||||||
value={fixerFunc}
|
|
||||||
label={i18n("fixer_function")}
|
|
||||||
helperText={i18n("fixer_function_helper")}
|
|
||||||
disabled={disabled}
|
|
||||||
onChange={handleChange}
|
|
||||||
>
|
|
||||||
{GlobalItem}
|
|
||||||
{FIXER_ALL.map((item) => (
|
|
||||||
<MenuItem key={item} value={item}>
|
|
||||||
{item}
|
|
||||||
</MenuItem>
|
|
||||||
))}
|
|
||||||
</TextField>
|
|
||||||
|
|
||||||
<TextField
|
<TextField
|
||||||
size="small"
|
size="small"
|
||||||
label={i18n("translate_start_hook")}
|
label={i18n("translate_start_hook")}
|
||||||
|
|||||||
Reference in New Issue
Block a user