/* Author: Romuald Rasel (Knowledge Factory GmbH) * Datum: 02.12.2010 * Beschreibung: JavaScript-Funktionen zum Einbetten der "alten" Unitracc-Apps * auf der neuen Plone-driven Plattform. /* Funktion prueft, ob die Seite in einem iframe eingebunden wird, * das seinen Ursprung auf einem anderen Server hat. In diesem Fall wird * der Funktion aus Sicherheitsgruenden der Zugriff auf die Eigenschaften * des Top-Window verweigert. Der Zugriffsverweigerung löst eine Exception aus, * die abgefangen und verarbeitet wird. Darin wird dem Header der HTML-Datei ein * CSS-Stylesheet, dass die Portal-Elemente ausblendet und ausschliesslich die * App-Elemente anzeigt. */ function checkEmbeddedApp() { try { /* Zugriff auf das Top-Window wird verweigert, wenn * Request von einem anderen Server stammt und der Catch-Block wird aufgerufen */ top.location.href; // Zugriff stammt vom selben Server var appFrameDiv = top.document.getElementById("appContent"); if(appFrameDiv != null) { // Iframe mit Marker-ID vorhanden. Lade Stylesheet mit embedded Design der App addEmbeddedAppStylesheet(); } } catch(e) { // Zugriff auf Eigenschaften des Top-Window verweigert. // -> Seite wurde ueber externes IFrame aufgerufen. addEmbeddedAppStylesheet(); } } /* Funktion laedt ein CSS-Stylesheet * in den Header der HTML-Datei, das diverse Portal-Elemente ausblendet und * die reine Sicht auf die App bietet. */ function addEmbeddedAppStylesheet() { var frameCSSLink = document.createElement("link") frameCSSLink.href = "/_styles/embedded_app.css;jsessionid=4CE9872B848A907E75B6AA77AA9BF7E2?state=free"; frameCSSLink.rel = "stylesheet"; frameCSSLink.type = "text/css"; frameCSSLink.media = "screen"; document.getElementsByTagName("head")[0].appendChild(frameCSSLink); }