如何从框架内获取首页网址?
(在javascript中使用:window.top.location实现)
答案 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