1
0
Fork 0
forked from forgejo/forgejo

[gitea] Avoid showing unnecessary JS errors when there are elements with different origin on the page (#29081)

Try to fix #29080

(cherry picked from commit f290c24d286b996ac6b512f49a30aa5aef1a2dbe)
This commit is contained in:
wxiaoguang 2024-02-08 10:42:18 +08:00 committed by Earl Warren
parent 73e32eae5b
commit 51c6103195
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
3 changed files with 19 additions and 9 deletions

View file

@ -1,4 +1,5 @@
import tippy, {followCursor} from 'tippy.js';
import {isDocumentFragmentOrElementNode} from '../utils/dom.js';
const visibleInstances = new Set();
@ -136,8 +137,6 @@ function attachChildrenLazyTooltip(target) {
}
}
const elementNodeTypes = new Set([Node.ELEMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE]);
export function initGlobalTooltips() {
// use MutationObserver to detect new "data-tooltip-content" elements added to the DOM, or attributes changed
const observerConnect = (observer) => observer.observe(document, {
@ -152,11 +151,10 @@ export function initGlobalTooltips() {
if (mutation.type === 'childList') {
// mainly for Vue components and AJAX rendered elements
for (const el of mutation.addedNodes) {
if (elementNodeTypes.has(el.nodeType)) {
attachChildrenLazyTooltip(el);
if (el.hasAttribute('data-tooltip-content')) {
attachLazyTooltip(el);
}
if (!isDocumentFragmentOrElementNode(el)) continue;
attachChildrenLazyTooltip(el);
if (el.hasAttribute('data-tooltip-content')) {
attachLazyTooltip(el);
}
}
} else if (mutation.type === 'attributes') {