Уведомление Когда всплывающее окно закрыто с помощью HTMLPage Silverlight.popupWindow ()
-
02-10-2019 - |
Вопрос
Я всплываю HTML-страницу из приложения Silverlight, используя HtmlPage.PopupWindow()
метод. Я пытаюсь справиться с событием, когда всплывающее окно закрыто из 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.
Решение
Вы правы, вариация номера порта достаточно, чтобы предотвратить доступ для Silverlight от доступа к событиям и содержанию всплывающего окна.
Другие советы
У вас есть очень маленькая ошибка в имени события :) Измените «onunload» на «onunload» и попробуйте снова
Твой onUnload
Событие должно быть определено в всплывающем окне, а не в окне родительского / открывающего устройства для обнаружения любых действий, выполненных на дочернем окне. В всплывающем окне вы будете отслеживать действия в этом окне и отправить вызов родительскому / открытую для обновлений состояния. С помощью этого вызова вы также передали бы какие-либо значения, которые вам нужны в этом окне, поскольку вы не можете прочитать данные о дочернем окне от родительского / открывающего.
Если страница является IFrame целевой страницы, вы бы использовали родитель; как в parent.functionname(data);
. Отказ Если страница является отдельным окном целевой страницы, вы будете использовать открывщик; как в opener.functionname(data);
.