商談の詳細ページに埋め込まれた Visualforce ページがあります。
ページ内には、バッキング コントローラー拡張機能のメソッドを呼び出すコマンド ボタンがあります。
バッキング メソッドが完了したら、ユーザーを別のページにリダイレクトするにはどうすればよいですか?
メソッドから PageReference を返すことはできますが、埋め込まれた Visualforce ページが表示される iframe のみをリダイレクトします。
理想的には最上位ウィンドウを更新したいのですが、埋め込まれた Visualforce ページが親ウィンドウと同じドメインにない場合、クロスドメインの問題が発生する可能性があるのではないかと心配しています。
基本的なテストとして、埋め込まれた Visualforce ページに以下を追加してみました。
<script>
window.setTimeout(testRedirect,2000);
function testRedirect() {
top.location.reload();
}
</script>
これにより、Chrome でエラーがログに記録されました。
安全でない JavaScript が、URL https://ab2.na2.visual.force.com/servlet/servlet.Integration?lid=066400000000000&ic=1 のフレームから URL https://na2.salesforce.com/006400000000000 のフレームにアクセスしようとし てい ます。ドメイン、プロトコル、およびポートが一致する必要があります。
そのため、Visualforce ページのドメインは異なります。