2010-09-06 38 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;