代码之家  ›  专栏  ›  技术社区  ›  Dan Auclair

使用Silverlight的HtmlPage.PopupWindow()关闭弹出窗口时的通知

  •  1
  • Dan Auclair  · 技术社区  · 14 年前

    我正在使用 HtmlPage.PopupWindow()

     var window = HtmlPage.PopupWindow(new Uri("http://mypopup..."), "popup", options);
    
     EventHandler<HtmlEventArgs> windowClosed = (sender, e) =>
     {
         // would like to refresh the page when popup is closed...
         HtmlPage.Document.Submit();
     };
    
     window.AttachEvent("onUnload", windowClosed);
    

    Silverlight应用程序和HTML弹出页面位于同一个域中,但是它们实际上位于不同的端口上。我在想,不同端口上的页面可能会被视为跨站点限制,从而导致JavaScript失败。

    3 回复  |  直到 4 年前
        1
  •  0
  •   AnthonyWJones    14 年前

    您是正确的,端口号的变化足以阻止Silverlight访问弹出窗口的事件和内容。

        2
  •  1
  •   Lasha Morgoshia    14 年前

    事件名称中有一个非常小的错误:)

        3
  •  0
  •   JoeFlash    14 年前

    你的 onUnload 事件必须在弹出窗口中定义,而不是在父窗口/打开器窗口中定义,以检测对子窗口所做的任何操作。在弹出窗口中,您将跟踪该窗口中的操作,并向父/开启器发送状态更新调用。通过这个调用,您还可以将需要的任何值传递给该窗口,因为您无法从父窗口/打开器读取子窗口的数据。

    如果页面是目标页面的iframe,那么您将使用parent;如在 parent.functionname(data); . 如果该页面是目标页面的一个单独窗口,则使用opener;如在 opener.functionname(data);

    推荐文章