【问题标题】:How to retrieve the name of the "Parent" page from the radwindow?如何从 radwindow 中检索“父”页面的名称?
【发布时间】:2012-11-24 17:11:16
【问题描述】:

我发现我的 ASP 网站有一个小问题。 这里是原理。 -> 我设置了一个弹出窗口以允许用户发送电子邮件警报错误。当发送电子邮件时,我会发送用户当前页面的名称。但是,这会返回弹出窗口的名称,而不是父页面 ....

如何从 radwindow(弹出窗口)中检索“父”页面的名称页面('.aspx')?

我试过了,但是没用

【问题讨论】:

    标签: c# asp.net telerik parent radwindow


    【解决方案1】:

    从弹出窗口的托管 HTML 中,您可以使用 Javascript 的 sn-p 访问托管页面的 DOM,如下所示:

      <script>
         alert(window.top.document.title);
      </script>
    

    这将返回一个漂亮的警告框,其中包含托管 RadWindow 的页面的标题。

    【讨论】:

    • 非常感谢!您的代码工作正常。但是,他返回的是“标题”页面,而不是带有 url 的页面的“名称”。和第一反应一模一样
    【解决方案2】:

    假设您有一个 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;
    

    【讨论】:

    • 非常感谢!您的代码工作正常。但是,他返回的是“标题”页面,而不是带有 url 的页面的“名称”。
    【解决方案3】:

    你可以试试吗:

    //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")%> 
    

    【讨论】:

    • 嘿,谢谢。但这对我不起作用。这会返回一个错误。我的“窗口”对象为空。
    • 太完美了!谢谢
    【解决方案4】:

    你到底想得到什么?页面有标题,而不是名称。 不管怎样,看看这个:http://www.telerik.com/help/aspnet-ajax/window-programming-calling-functions.html。它将向您展示如何在主页上调用 JavaScript 函数,以便它可以返回您需要的任何 JS 对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 2019-10-19
      • 2012-04-01
      • 1970-01-01
      相关资源
      最近更新 更多