Ich habe eine Visualforce-Seite, die auf der Detailseite der Möglichkeiten eingebettet ist.Visual Seite in einer Detailseite eingebettet, die auf anderer Seite umgeleitet werden muss
innerhalb der Seite ist eine Befehlsschaltfläche, die ein Verfahren, in dem Trägerreglerneben aufruft.
Sobald die Trägerverfahren abgeschlossen ist, wie kann ich den Benutzer auf eine andere Seite umleiten?
Ich kann einen PageReference aus dem Verfahren zurück, sondern es wird nur die iframe umleiten, die die eingebettete Seite Visual in angezeigt wird.
Im Idealfall würde Ich mag die Top-Level-Fenster aktualisieren, aber ich bin dort besorgt können domänenübergreifende Probleme auftreten, wenn sich die eingebettete Visualforce-Seite nicht in derselben Domäne wie das übergeordnete Fenster befindet.
als Basistest ich folgendes auf den eingebetteten Visualforce-Seite versucht, indem:
<script>
window.setTimeout(testRedirect,2000);
function testRedirect() {
top.location.reload();
}
</script>
Dies führte in Chrome Protokollierung der Fehler:
Unsafe JavaScript attempt to access frame with URL https://na2.salesforce.com/006400000000000 from frame with URL https://ab2.na2.visual.force.com/servlet/servlet.Integration?lid=066400000000000&ic=1 . Domains, protocols and ports must match.
So sind die Domänen unterscheiden sich für die Visualforce-Seite.
verwenden Ich suche dies als Teil der Lösung für meine [CSRF sicher Gewohnheit Taste, um Apex Methode verknüpft] (http://stackoverflow.com/questions/10809520/csrf-safe-custom-button-linked-to-apex-method/11006021#11006021) Frage. Es kann sein, dass ich einen Apex verwenden muss: actionFunction mit etwas Javascript, um 'window.top.location.href' nach Abschluss zu ändern. –
Hallo Daniel, es sei denn, jemand einige super hinterhältige Taktik hat glaube ich Ihnen dabei kein Glück werden - das Problem ist, dass die eingebetteten Visualforce-Seiten werden von einer anderen Domäne bedient, und so sind Sie unterliegen den XSS-Schutz des Browsers . Hoffe, jemand beweist mich falsch und findet einen Weg, dies für Sie arbeiten zu lassen! –