Mam stronę Visualforce, która jest osadzona na stronie szczegółów Opcji.Strona Visualforce osadzona na stronie szczegółów, która musi przekierować na inną stronę
Na stronie znajduje się przycisk polecenia wywołujący metodę w rozszerzeniu kontrolera wewnętrznego.
Po zakończeniu metody tworzenia kopii zapasowych, w jaki sposób mogę przekierować użytkownika na inną stronę?
mogę zwrócić PageReference od metody, ale będzie przekierowywać tylko iframe że osadzony strona Visualforce jest wyświetlany w.
Idealnie chciałabym, aby odświeżyć okno najwyższego poziomu, ale nie jestem zainteresowany mogą występować problemy z wieloma domenami, jeśli osadzona strona visualforce nie znajduje się w tej samej domenie, co okno nadrzędne.
jako podstawowy test Próbowałem dodanie następujących do wbudowanego stronie Visualforce:
<script>
window.setTimeout(testRedirect,2000);
function testRedirect() {
top.location.reload();
}
</script>
Spowodowało Chrome zalogowaniu błąd:
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.
Więc domeny różnią się dla strona Visualforce.
szukam używać tego jako część rozwiązania dla mojego [CSRF bezpiecznego Niestandardowy przycisk powiązany z metodą Apex] (http://stackoverflow.com/questions/10809520/csrf-safe-custom-button-linked-to-apex-method/11006021#11006021) pytanie. Może być konieczne użycie apex: actionFunction z niektórymi javascriptami, aby zmienić 'window.top.location.href' po zakończeniu. –
Cześć Daniel, chyba że ktoś ma jakąś super podstępną taktykę, myślę, że będziesz miał pecha z tym - problem polega na tym, że osadzone strony visualforce są podawane z innej domeny, więc podlegasz ochronie XSS przeglądarki . Mam nadzieję, że ktoś mi udowodni, że się mylę i znajdzie sposób, żeby to zadziałało! –