Correção na abertura dos workload workbench quando não estiver disponível
This commit is contained in:
@@ -4590,7 +4590,7 @@
|
||||
frameHost.appendChild(existingFrame);
|
||||
}
|
||||
|
||||
if (existingFrame.src !== frameUrl) {
|
||||
if (shouldNavigateSpaFrame(existingFrame, frameUrl)) {
|
||||
navigateSpaFrame(existingFrame, frameUrl);
|
||||
}
|
||||
|
||||
@@ -4600,6 +4600,7 @@
|
||||
const frame = document.createElement("iframe");
|
||||
frame.id = IDS.spaFrame;
|
||||
frame.name = IDS.spaFrame;
|
||||
frame.dataset.archPanelFrame = "spa-workbench";
|
||||
frame.setAttribute("aria-hidden", "true");
|
||||
frame.setAttribute("referrerpolicy", "no-referrer-when-downgrade");
|
||||
frame.tabIndex = -1;
|
||||
@@ -4624,6 +4625,25 @@
|
||||
const existingHost = document.getElementById(IDS.spaFrameHost);
|
||||
|
||||
if (existingHost) {
|
||||
const desiredParent = document.body || document.documentElement;
|
||||
|
||||
if (desiredParent && existingHost.parentElement !== desiredParent) {
|
||||
desiredParent.appendChild(existingHost);
|
||||
}
|
||||
|
||||
Object.assign(existingHost.style, {
|
||||
position: "fixed",
|
||||
width: "1440px",
|
||||
height: "1000px",
|
||||
overflow: "hidden",
|
||||
opacity: "0",
|
||||
pointerEvents: "none",
|
||||
border: "0",
|
||||
left: "-20000px",
|
||||
top: "0",
|
||||
zIndex: "0",
|
||||
});
|
||||
|
||||
return existingHost;
|
||||
}
|
||||
|
||||
@@ -4640,20 +4660,31 @@
|
||||
border: "0",
|
||||
left: "-20000px",
|
||||
top: "0",
|
||||
zIndex: "-1",
|
||||
zIndex: "0",
|
||||
});
|
||||
|
||||
document.documentElement.appendChild(host);
|
||||
(document.body || document.documentElement).appendChild(host);
|
||||
|
||||
return host;
|
||||
}
|
||||
|
||||
function shouldNavigateSpaFrame(frame, frameUrl) {
|
||||
const currentSrc = cleanString(frame.getAttribute("src") || frame.src);
|
||||
|
||||
if (!currentSrc || currentSrc === "about:blank") {
|
||||
return true;
|
||||
}
|
||||
|
||||
try {
|
||||
return new URL(currentSrc, window.location.href).toString() !== frameUrl;
|
||||
} catch {
|
||||
return currentSrc !== frameUrl;
|
||||
}
|
||||
}
|
||||
|
||||
function navigateSpaFrame(frame, frameUrl) {
|
||||
frame.dataset.archPanelLoaded = "false";
|
||||
frame.removeAttribute("src");
|
||||
window.setTimeout(() => {
|
||||
frame.src = frameUrl;
|
||||
}, 0);
|
||||
frame.src = frameUrl;
|
||||
}
|
||||
|
||||
function waitForFrameLoad(frame) {
|
||||
|
||||
Reference in New Issue
Block a user