diff --git a/frontend/dcViewer.css b/frontend/dcViewer.css index 2d05245..974bab9 100644 --- a/frontend/dcViewer.css +++ b/frontend/dcViewer.css @@ -182,6 +182,10 @@ header { height: 32px; } +html.is-embedded-viewer .logo-btn { + display: none; +} + .main { position: relative; diff --git a/frontend/dcViewer.js b/frontend/dcViewer.js index 92f08d3..ee9f525 100644 --- a/frontend/dcViewer.js +++ b/frontend/dcViewer.js @@ -13,6 +13,22 @@ import "./theme.js?v=3"; import { TransformGizmo } from "./transformGizmo.js"; import { createObjectModal } from "./src/ui/objectModal.js"; +const detectEmbeddedViewer = () => { + const params = new URLSearchParams(window.location.search || ""); + const embeddedParam = params.get("embed") || params.get("embedded") || params.get("iframe"); + const explicitEmbedded = embeddedParam !== null && !/^(0|false|no|standalone)$/i.test(embeddedParam); + let framed = false; + try { + framed = window.self !== window.top; + } catch (_) { + framed = true; + } + return explicitEmbedded || framed; +}; + +const embeddedViewer = detectEmbeddedViewer(); +document.documentElement.classList.toggle("is-embedded-viewer", embeddedViewer); + const dropZone = document.getElementById("dropZone"); const viewerWrapper = document.querySelector(".viewer-wrapper"); const headerEl = document.querySelector("header"); @@ -5595,7 +5611,7 @@ const initViewer = async () => { sdkRef = sdk; const { Viewer, NavCubePlugin, DistanceMeasurementsPlugin, DistanceMeasurementsMouseControl, SectionPlanesPlugin } = sdk; mathUtil = sdk.math; - if (headerEl && homeButton && !homeButton.querySelector(".ue-logo")) { + if (!embeddedViewer && headerEl && homeButton && !homeButton.querySelector(".ue-logo")) { const logoEl = createLogo(); homeButton.appendChild(logoEl); homeButton.title = "Открыть NODE.DC Hub"; diff --git a/frontend/index.html b/frontend/index.html index 73d95cb..c58a0bf 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -20,6 +20,22 @@ } }()); + +