forked from forgejo/forgejo
Avoid showing unnecessary JS errors when there are elements with different origin on the page (#29081) (#29089)
Backport #29081 by wxiaoguang Try to fix #29080 Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> (cherry picked from commit 9a4d283e9ac472dca869356c27db05039673c638)
This commit is contained in:
parent
628e1036cf
commit
614ba2b257
3 changed files with 19 additions and 9 deletions
|
@ -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') {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue