1

HtmlPage.PopupWindow()このメソッドを使用して、SilverlightアプリケーションからHTMLページをポップアップしています。Silverlight内からポップアップウィンドウが閉じられたときのイベントを処理しようとしています。これは私がこれをしようとしている方法です:

 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が失敗する可能性があると考えていました。

4

3 に答える 3

1

イベント名に非常に小さなバグがあります:) 「onUnload」を「onunload」に変更して、もう一度やり直してください

于 2010-08-13T12:41:27.243 に答える
0

子ウィンドウで行われたアクションを検出するには、親/オープナーonUnloadウィンドウではなく、ポップアップ ウィンドウでイベントを定義する必要があります。ポップアップでは、そのウィンドウでのアクションを追跡し、ステータスの更新のために親/オープナーに呼び出しを送信します。この呼び出しでは、親/オープナーから子ウィンドウのデータを読み取ることができないため、必要な値をそのウィンドウに渡すこともできます。

ページがターゲット ページの iframe である場合は、parent を使用します。のようにparent.functionname(data);。ページがターゲット ページの別のウィンドウである場合は、オープナーを使用します。のようにopener.functionname(data);

于 2010-04-28T18:04:25.443 に答える
0

おっしゃる通りです。ポート番号が異なるだけで、Silverlight がポップアップ ウィンドウのイベントやコンテンツにアクセスできなくなります。

于 2010-04-28T19:56:29.913 に答える