我有一个测试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中打开网址。
答案 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/' ;