0

動作させようとしているテスト用の visualforce ページがあります。これは、iframe で URL を開く必要がある 2 つのボタンがある空白のページです。以下は、ページの背後にあるコードです。

頂点クラス:

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でURLを開くことができるようにしたいだけです。

4

1 に答える 1

0

apex コードと visualforce は問題ありませんが、次のエラーを見つけることができるブラウザ コンソールを調べる必要があります。

「 https://c.ap1.visual.force.com/apex/test 」のページはHTTPS 経由で読み込まれましたが、「http://www.yahoo.com/」からの安全でないコンテンツが実行されました: このコンテンツもHTTPS 経由でロードされます。

このエラーを修正すると、次のエラーが発生します。

「X-Frame-Options」が「SAMEORIGIN」に設定されているため、 「 https://www.google.com/?gws_rd=cr&ei=IhiYUoCsOcWdhAedlIKwDg 」をフレームに表示することを拒否しました。

ご理解のとおり、セキュリティ上の問題です。

このページは正常に動作しますOpenPageURL = 'http://www.youtube.com/embed/' ;

于 2013-12-03T18:01:37.527 に答える