我的场景是我有一个页面名称UserMain.aspx
,并且在此页面中我有2个部分(ie2 IFrame
s)。现在从IFrame
页中的一个我想要得到parentUrl
(即www.xyz/UserMain.aspx
)。我已经尝试过Request.url
,但它的网址为IFrame
,如何获取parentUrl
?如何使用c从iFrame中获取父网址
IFrame
和父页面都在同一个域中。
我的场景是我有一个页面名称UserMain.aspx
,并且在此页面中我有2个部分(ie2 IFrame
s)。现在从IFrame
页中的一个我想要得到parentUrl
(即www.xyz/UserMain.aspx
)。我已经尝试过Request.url
,但它的网址为IFrame
,如何获取parentUrl
?如何使用c从iFrame中获取父网址
IFrame
和父页面都在同一个域中。
不同的窗口和iframe仅存在于浏览器中,服务器代码无法在它们之间导航。
在clientscript您可以访问,当然给出的父窗口的URL,该页面和iframe是来自同一个域:
var parentUrl = window.parent.location.href;
您可以使用window.parent.location.href
通过客户端脚本做到这一点。如果你在加载页面的第一级有一个iframe,这将起作用。如果您拥有更多级别的层次结构,如iframe中的iframe ...则可以使用window.top.location.href
。
window.top总是让你到最上面的父窗口。
我想保存parentUrl到一个会话,所以我想抓住从C#代码parentUrl,如何做到这一点? – FosterZ 2010-09-06 11:30:31
@Fosterz - 正如其他人所建议的那样,您可能无法从服务器端获取该信息,但是,您可以使用隐藏控件(如文本框或标签),通过javascript为它们设置值,然后您可以获得通过从隐藏控件获取价值从服务器端获得价值。 – 2010-09-06 11:37:35
“HttpContext.Current.Request.Url.AbsoluteUri”给出的当前URL不是父url。 – FosterZ 2010-09-06 12:48:15
您可以尝试使用以下内容。我在我的一个解决方案中尝试过,但这不是我所需要的。也许它会帮助你
Request.UrlReferrer.OriginalString.ToString();
string UrlBrowser= Request.UrlReferrer.OriginalString;
所以THR没有办法从后端代码做到这一点,即C#代码..客户端脚本是唯一的方法..日Thnx – FosterZ 2010-09-06 11:25:41
@Fosterz:您可以从后面设置变量代码你的javascript;比如像'<%strParentUrl%> = parentUrl'。 – 2010-09-06 11:42:50
@KMan:你认为这样的东西会起作用吗? – Guffa 2010-09-06 12:27:50