如何在Visualforce中更新iFrame

时间:2012-08-09 15:49:34

标签: iframe visualforce

我有一个类似于以下内容的iFrame:

<apex:iframe src="http://www.salesforce.com" scrolling="true" height="600" width="100%" id="docframe"/> 

我想在父页面(包含iFrame)上使用链接来更新iFrame的内容。

我尝试使用类似于iFrame Target示例中显示的代码:http://www.w3schools.com/html/html_iframe.asp但是在我的浏览器(Firefox)上它会打开一个新标签。即使我将上一个链接中的示例复制并粘贴到我的visualForce页面中,它仍然坚持在浏览器中打开一个新选项卡。

关于我可能想要尝试使用它的任何想法?

1 个答案:

答案 0 :(得分:1)

我会这样做

1)首先在apex中定义iFrame的SRC并实现重载方法:

public with sharing class YourClass {

    // Source var for the iFrame
    public String iframeSource { get; set; }

    // Constructor
    public YourClass() {
        // Default value of the frame source
        iframeSource = 'apex/Page1';
    }

    // The method to reload the iframe with another source page
    public PageReference reloadIframe() {
        iframeSource = 'apex/Page2';
        return null;
    }
}

2)现在创建一个命令按钮来重新加载iFrame和要刷新的面板:

<apex:commandButton action="{!reloadIframe}" reRender="theFrame"/>

<apex:outputPanel id="theFrame">
    <apex:iframe src="{!iframeSource}" />
</apex:outputPanel>