2010-09-06 73 views
3

我的場景是我有一個頁面名稱UserMain.aspx,並且在此頁面中我有2個部分(ie2 IFrame s)。現在從IFrame頁中的一個我想要得到parentUrl(即www.xyz/UserMain.aspx)。我已經嘗試過Request.url,但它的網址爲IFrame,如何獲取parentUrl如何使用c從iFrame中獲取父網址

IFrame和父頁面都在同一個域中。

回答

5

不同的窗口和iframe僅存在於瀏覽器中,服務器代碼無法在它們之間導航。

在clientscript您可以訪問,當然給出的父窗口的URL,該頁面和iframe是來自同一個域:

var parentUrl = window.parent.location.href; 
+0

所以THR沒有辦法從後端代碼做到這一點,即C#代碼..客戶端腳本是唯一的方法..日Thnx – FosterZ 2010-09-06 11:25:41

+0

@Fosterz:您可以從後面設置變量代碼你的javascript;比如像'<%strParentUrl%> = parentUrl'。 – 2010-09-06 11:42:50

+0

@KMan:你認爲這樣的東西會起作用嗎? – Guffa 2010-09-06 12:27:50

0

您可以使用window.parent.location.href通過客戶端腳本做到這一點。如果你在加載頁面的第一級有一個iframe,這將起作用。如果您擁有更多級別的層次結構,如iframe中的iframe ...則可以使用window.top.location.href

window.top總是讓你到最上面的父窗口。

+0

我想保存parentUrl到一個會話,所以我想抓住從C#代碼parentUrl,如何做到這一點? – FosterZ 2010-09-06 11:30:31

+0

@Fosterz - 正如其他人所建議的那樣,您可能無法從服務器端獲取該信息,但是,您可以使用隱藏控件(如文本框或標籤),通過javascript爲它們設置值,然後您可以獲得通過從隱藏控件獲取價值從服務器端獲得價值。 – 2010-09-06 11:37:35

+0

「HttpContext.Current.Request.Url.AbsoluteUri」給出的當前URL不是父url。 – FosterZ 2010-09-06 12:48:15

9

您可以嘗試使用以下內容。我在我的一個解決方案中嘗試過,但這不是我所需要的。也許它會幫助你

Request.UrlReferrer.OriginalString.ToString(); 
1
string UrlBrowser= Request.UrlReferrer.OriginalString;