2010-11-01 43 views
1

如何從一個框架內獲得最高頁面URL裏面獲取頁面的網址?ASP.Net:從框架

(在JavaScript它的使用來實現:window.top.location)

回答

4

你不能。

頁面將被加載到另一個頁面中的iframe的事實不會發送到服務器的請求中,所以無法獲取父頁面的ULR,甚至無法確定是否存在一個父頁面或不是。

如果您在服務器端需要該信息,則必須將該信息添加到請求中,例如通過將父頁面URL包含爲查詢字符串參數。

0

如果框架+父母都在同一個域中,你可以做到這一點。如果是這樣,那麼你就可以獲取到其他I幀,幀或彈出窗口引用。

從內存中,嘗試window.parent,所以你會像window.parent.top.location

1

如果人們需要它,有一個爲這個一定目的的一種方式。至少我解決了。

首先,放置一個按鈕運行在服務器上添加一個click事件和客戶端單擊事件。

<asp:Button ID="btnFindParentUrl" runat="server" Text="Get Url!" OnClick="btnFindParentUrl_Click" OnClientClick="fillHidden();" /> 

將一個隱藏的文本框一個div裏面有style="display: none;"(不Visible="false"的按鈕,因爲如果你的客戶端無法看到並填寫):

<div style="display: none;"> 
    <asp:TextBox ID="txtHiddenUrlField" runat="server" BorderStyle="None" Font-Size="0px" ForeColor="#F6F6F6" Height="0px" Width="0px"></asp:TextBox> 
</div> 

現在把fillHidden()功能的JavaScript代碼:

<script type="text/javascript"> 
    function fillHidden() { 
     document.getElementById('<%= txtHiddenUrlField.ClientID %>').value = parent.document.location.href; 
    }; 
</script> 

這就是你在客戶端所要做的一切。
讓我們去到服務器:

protected void btnFindParentUrl_Click(object sender, EventArgs e) 
{ 
    string parentUrl = txtHiddenUrlField.Text; 
} 

這樣,你就應該在一個iframe越來越父URL從按鈕。

任何需要幫助的人都可以在這裏提問,或在我的個人站點中詢問this code's post