Vermeiden Sie die Verwendung von window.top
Kategorie: Supportfähigkeit, Upgrade-Bereitschaft, Online-Migration
Wirkungspotential: Hoch
Symptome
Der folgende Skriptfehler wird den Benutzern angezeigt oder in Ihre Fehlerprotokolle aufgenommen:
Error: Blocked a frame with origin "https://<yourinstance>.dynamics.com" from accessing a cross-origin frame.
Anpassungen verhalten sich möglicherweise nicht korrekt im Kontext von Dynamics 365 App for Outlook, Dynamics 365 für Smartphones und Tablets, oder einer externen Anwendung, die den Microsoft Dataverse innerhalb eines Iframe hostet.
Hinweis
Es kann einige Szenarien geben, in denen die Fehlerbehandlung den Fehler maskiert und die Skriptverarbeitung fortsetzt, was zu unerwartetem Verhalten führt.
Anleitung
Vermeiden Sie die Verwendung von window.top
in Skripten, die im Rahmen von Dynamics 365 App for Outlook, Dynamics 365 for Phones und Tablets oder einer externen Anwendung laufen, die Dataverse innerhalb eines Iframe hosten. Auch wenn diese Szenarien derzeit nicht für Ihr Unternehmen gelten, sollten Sie die Verwendung von window.top
vermeiden oder sich vor diesem Problem schützen.
Wichtig
Die Verwendung von window.parent
oder Variationen der übergeordneten Hierarchie (z. B. window.parent.parent
) können die gleichen Symptome verursachen.
Im Folgenden werden die empfohlenen Ansätze aufgeführt:
Vermeiden Sie die Verwendung des Objekts
window.top
ganz.Wenn die Verwendung von
window.top
die einzige verfügbare Option ist, testen Sie zunächst, obwindow.top
mit dem untenstehenden Skript zugänglich ist. Wenn es nicht verfügbar ist, bieten Sie alternative Logik oder eine Fallback-Benutzerfreundlichkeit.Hinweis
Obwohl wir empfehlen, die Verwendung von
window.top
zu vermeiden, ist dieses Skript für diejenigen Edge-Fälle enthalten, in denen es die einzige verfügbare Option sein könnte.function isTopAccessible() { try { window.top.location; return true; } catch (err) { return false; } } var canAccess = isTopAccessible(); alert(canAccess);
Problematische Muster
Die Verwendung von window.top
sollte nach Möglichkeit vermieden werden. Im Folgenden finden Sie Beispiele für häufig vorkommende Muster.
Warnung
Diese Szenarien sollten vermieden werden.
// Getting or setting variables at the top level
var myValue = window.top.myGlobalVariable;
// Attempting to access the Xrm namespace at the top level
myValue = window.top.Xrm.Page.getAttribute("column1");
Weitere Informationen
In den genannten Szenarien bezieht sich window.top
auf das Fenster, das einem Anwendungskontext außerhalb von Dynamics 365 gehört. Aufgrund der unterschiedlichen Herkunft stellt der Browser dem Benutzer einen herkunftsübergreifenden Sicherheitsfehler dar.
Siehe auch
Anwenden von Geschäftslogik mit Client-Skripting in modellgesteuerten Anwendungen mit JavaScript
Ereignisse in Formularen und in Rastern in Modell-angetriebenen Apps
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).