如何让我的visualforce自定义按钮工作?

时间:2013-12-03 15:10:54

标签: salesforce visualforce apex

我有一个测试visualforce页面,我正在努力工作。它只是一个带有2个按钮的空白页面,可以打开iframe中的URL。下面是我在页面后面的代码。

Apex课程:

public class OnLoadController {

    public String Page {get; set;}
    public String OpenPageURL {get; set;}

    public void OnLoadController()
    {
        Page = '' ;
        OpenPageURL = '' ;
    }

    public PageReference redirect()
    {
        if(Page == 'google')
        {
            OpenPageURL = 'http://www.google.com' ;
        }
        if(Page == 'mpay')
        {
            OpenPageURL = 'http://www.yahoo.com/' ;
        }
        return null;
    }

}

VisualForce页面:

<apex:page id="pg" controller="OnLoadController">
<apex:form>

<apex:actionFunction action="{!redirect}" name="OpenPage" reRender="pb,theIframe">
    <apex:param assignTo="{!Page}" value="" name="param1"/>
</apex:actionFunction>


    <apex:pageBlock id="pb">

        <apex:pageBlockButtons>
            <apex:commandButton value="Google" onclick="OpenPage('google'); return false;"/>
            <apex:commandButton value="Yahoo" onclick="OpenPage('blog'); return false;"/>
        </apex:pageBlockButtons>

        <apex:iframe id="theIframe" src="{!OpenPageURL}" scrolling="true"/>

    </apex:pageBlock>


</apex:form>
</apex:page>

页面加载正常,按钮显示完美但是当我点击它们时没有任何反应。我只是想能够点击按钮并在页面的iframe中打开网址。

1 个答案:

答案 0 :(得分:0)

您的顶级代码和visualforce都可以,但您需要查看浏览器控制台,您可以在其中找到以下错误:

  

https://c.ap1.visual.force.com/apex/test”的页面是通过HTTPS加载的,但是运行了来自“http://www.yahoo.com/”的不安全内容:此内容也应通过HTTPS加载。

修正此错误后,您将面临以下错误:

  

拒绝在一个框架中显示“https://www.google.com/?gws_rd=cr&ei=IhiYUoCsOcWdhAedlIKwDg”,因为它将“X-Frame-Options”设置为“SAMEORIGIN”。

正如您所理解的那样,这是一个安全问题。

此页面可以正常使用OpenPageURL = 'http://www.youtube.com/embed/' ;