ASP.Net:从框架内获取页面URL

时间:2010-11-01 07:10:26

标签: asp.net

如何从框架内获取首页网址?

(在javascript中使用:window.top.location实现)

3 个答案:

答案 0 :(得分:4)

你不能。

页面将被加载到另一页面中的iframe这一事实不会在请求中发送到服务器,因此无法获取父页面的ULR,甚至无法确定是否存在父页面与否。

如果您需要服务器端的信息,则必须将该信息添加到请求中,例如将父页面URL包含为查询字符串参数。

答案 1 :(得分:1)

如果人们需要它,就有办法达到这个目的。至少我以某种方式解决了。

首先,在服务器上放置一个按钮,添加一个点击事件和一个客户端点击事件。

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

将一个隐藏的文本框放在一个带有style="display: none;"的div中(而不是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中的按钮获取父网址。

任何需要帮助的人都可以在此处或在我的个人网站this code's post中提问。

答案 2 :(得分:0)

如果frame + parent都在同一个域中,则可以执行此操作。如果是这样,那么你可以获得对其他iframe,框架或弹出窗口的引用。

从内存中,尝试window.parent,所以你的内容就像window.parent.top.location