Skip to content

Commit a517dd4

Browse files
committed
Fix finding the document context element
1 parent a071418 commit a517dd4

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

html-api-debugger/view.js

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ const RENDERED_IFRAME = /** @type {HTMLIFrameElement} */ (
1212
document.getElementById('rendered_iframe')
1313
);
1414

15+
/** @type {Element|null} */
16+
let CONTEXT_ELEMENT = null;
17+
1518
const cfg = I.getConfig(NS);
1619
let { nonce } = cfg;
1720

@@ -390,6 +393,7 @@ const store = createStore(NS, {
390393
if (contextElement) {
391394
store.state.DOM.contextNode = contextElement.nodeName;
392395
contextElement.innerHTML = store.state.playbackHTML ?? store.state.html;
396+
CONTEXT_ELEMENT = contextElement;
393397
}
394398
}
395399

@@ -572,6 +576,7 @@ const store = createStore(NS, {
572576
store.state.playbackHTML ??
573577
store.state.html;
574578

579+
CONTEXT_ELEMENT = null;
575580
iframeDocument.open();
576581
iframeDocument.write(html);
577582
iframeDocument.close();
@@ -646,21 +651,13 @@ const store = createStore(NS, {
646651
handleCopyTreeClick: function* (e) {
647652
const useDomTree =
648653
/** @type {HTMLButtonElement} */ (e.target).name === 'tree__dom';
654+
649655
let tree;
650656
if (useDomTree) {
651-
const doc = RENDERED_IFRAME.contentWindow.document;
652-
653-
/** @type {Element|null} */
654-
let contextElement = null;
655-
if (store.state.contextHTMLForUse) {
656-
const walker = doc.createTreeWalker(doc, NodeFilter.SHOW_ELEMENT);
657-
while (walker.nextNode()) {
658-
// @ts-expect-error It's an Element!
659-
contextElement = walker.currentNode;
660-
}
661-
}
662-
663-
tree = contextElement || doc;
657+
tree =
658+
CONTEXT_ELEMENT ||
659+
// @ts-expect-error It's an Element!
660+
RENDERED_IFRAME.contentWindow.document;
664661
} else {
665662
tree =
666663
store.state.playbackTree ?? store.state.htmlapiResponse.result?.tree;

0 commit comments

Comments
 (0)