iframe中のVisualforce Pageから親の標準ページをリロードする

標準ページにカスタムVFページを埋め込むときに、VFページではなく、親の標準ページをリロードさせたいという要望がないでしょうか。
単純にJSの’location.href=”/”‘を使うと、うまく行かないですよね。

本ポストにはこの事例を示したいと思います。

問題の再現

1.カスタムオブジェクト「Sales__c」を用意

2.Apex Class “ExtendPageController”を新規作成

2.Visualforce Page “SalesDetail”を新規作成

3. Sales__cの詳細レイアウトに”SalesDetail”を追加

Edit Sales Page Layout

4.詳細ページの任意データを編集し、保存しないまま「Refresh」リンクを押下

Sales  Detail
そして、全ページではなく子ページだけがリロードされることが確認できました。問題発生原因はvisualforce pageをiframeに出力されているからです。
Sales Detail iframe

ソリューション

‘target=”_parent”‘を使って上記の問題解決できる一つソリューションであります。
次のように:

visualforce pageを修正

再度確認

Sales  Detail2
Sales Detail Refresh Good、できました~!

Post Tagged with , , ,