improve: some websites rebuild imcomplete (#1163)

* improve: mutation.ts, loop use Set replace Array

* improve: add a try-catch to utils.ts to make it robust

* Create yellow-mails-cheat.md

---------

Co-authored-by: Yun Feng <yun.feng0817@gmail.com>
This commit is contained in:
sky
2026-04-01 12:00:00 +08:00
committed by GitHub
parent 6855705445
commit 1c5acb69be
3 changed files with 19 additions and 7 deletions

View File

@@ -333,7 +333,7 @@ export default class MutationBuffer {
this.mirror.removeNodeFromMap(this.mapRemoves.shift()!);
}
for (const n of Array.from(this.movedSet.values())) {
for (const n of this.movedSet) {
if (
isParentRemoved(this.removes, n, this.mirror) &&
!this.movedSet.has(n.parentNode!)
@@ -343,7 +343,7 @@ export default class MutationBuffer {
pushAdd(n);
}
for (const n of Array.from(this.addedSet.values())) {
for (const n of this.addedSet) {
if (
!isAncestorInSet(this.droppedSet, n) &&
!isParentRemoved(this.removes, n, this.mirror)

View File

@@ -229,11 +229,15 @@ export function isBlocked(
: node.parentElement;
if (!el) return false;
if (typeof blockClass === 'string') {
if (el.classList.contains(blockClass)) return true;
if (checkAncestors && el.closest('.' + blockClass) !== null) return true;
} else {
if (classMatchesRegex(el, blockClass, checkAncestors)) return true;
try {
if (typeof blockClass === 'string') {
if (el.classList.contains(blockClass)) return true;
if (checkAncestors && el.closest('.' + blockClass) !== null) return true;
} else {
if (classMatchesRegex(el, blockClass, checkAncestors)) return true;
}
} catch (e) {
// e
}
if (blockSelector) {
if (el.matches(blockSelector)) return true;