0

私は 2 つの Web サイトを持っています.. (MVC アプリケーション)

www.WebsiteA.com (2 つのタブがあります) の「.master」ページは次のようになります。

   <ul id="module" class="module">       

        <li id="home"><%=Html.ActionLink("Home", "ActionHome", "Home")%></li>
        <li id="Pay"><%=Html.ActionLink("Payment", "ActionPay", "Payment")%></li>

    </ul>

www.websiteA.com の Web サイトに直接アクセスすると、[ホーム] と [支払い] の 2 つのタブが表示されます。

この iframe がページの 1 つにある www.WebsiteB.com などの別の Web サイトがあります。Iframe は基本的に最初の Web サイト A を指します。

これはウェブサイト B www.websiteB.com/linktoWebsiteA です

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <iframe src="http://www.websiteA.com"</iframe>

</asp:Content>

私の質問は次のとおりです。ウェブサイト A が URL (www.websiteA.com) に直接アクセスしたときに 2 つのタブを表示するにはどうすればよいですか。 websiteB の iframe。Iframe 内の Web サイト A は、[ホーム] タブのみを表示する必要があります。あなたのアイデア/助けをありがとう。

4

1 に答える 1

3

iframe から呼び出すときに、クエリ文字列パラメーターを渡すことができます。

<iframe src="http://www.websiteA.com/?iframe=true"</iframe>

次に、iframeクエリ文字列パラメーターを使用して、必要なタブを表示します。

<ul id="module" class="module">       
    <li id="home"><%=Html.ActionLink("Home", "ActionHome", "Home")%></li>
    <% if (!string.IsNullOrEmpty(Request["iframe"])) { %>    
        <li id="Pay"><%=Html.ActionLink("Payment", "ActionPay", "Payment")%></li>
    <% } %>
</ul>

もう 1 つの可能性は、javascript を使用することです。これは、追加の指示 (クエリ文字列パラメーターなど) を渡したくない場合に、サイトが iframe 内で実行されているかどうかを知る唯一の方法です。

<script type="text/javascript">
    if (top !== self) { 
        // running inside an iframe => hide the tabs you don't want
    }
</script>
于 2012-08-10T14:45:05.937 に答える