我发现我的asp网站有一个小问题。这里是原理。-> 我设置了一个弹出窗口以允许用户发送电子邮件警报错误。当发送电子邮件时,我会发送用户当前页面的名称。但是,这会返回弹出窗口的名称,而不是父页面....
如何从 radwindow(弹出窗口)中检索“父”页面的名称页面('.aspx')?
我试过这个,但它不工作
从弹出窗口的托管 HTML 中,您可以使用以下 Javascript 片段访问托管页面的 DOM:
<script>
alert(window.top.document.title);
</script>
这将返回给您一个漂亮的警告框,其中包含托管 RadWindow 的页面的标题。
你能试试吗:
//myWindow beeing the popup
myWindow.document.write("<br><br>" + myWindow.opener.document.location.href + "")
更新
如果您无法获取弹出窗口对象,您可以在查询字符串中传递调用窗口的 url:
radopen('urlOfThePopup.aspx?opener=' + document.location.href, ...)
然后在您的弹出代码中
<%=Request.Querystring("opener")%>
假设您有一个 RadWindow 而不是实际的浏览器弹出窗口,这就是您需要的代码:
// This is a common function when dealing with RadWindows and could be placed in some shared location
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
// Use it like this
var parentTitle = GetRadWindow().BrowserWindow.document.title;
你到底想得到什么?页面有标题,而不是名称。无论如何,看看这个:http ://www.telerik.com/help/aspnet-ajax/window-programming-calling-functions.html 。它将向您展示如何在主页上调用 JavaScript 函数,以便它可以返回您需要的任何 JS 对象。