У меня есть страница, которая загружает другое окно при нажатии кнопки. Загруженная страница имеет управление Silverlight, поэтому для ее загрузки и подготовки требуется некоторое время, прежде чем она сможет принимать вызовы JavaScript.
Что мне нужно сделать, это вызвать определенный метод объекта silverlight сразу после того, как плагин silverlight загружен и готов взаимодействовать со мной.
Теперь, если всплывающая страница уже открыта, код будет выглядеть так:
var slWin = window.open('PopupPage.html', 'WindowName');
var elem = slWin.document.getElementById('slControl');
elem.Content.SlObject.MethodA();
Это работает, когда окно уже открыто, потому что элемент управления уже загружен и готов. Мне нужно изменить этот код, чтобы справиться с ситуацией, когда elem
нужно время для подготовки.
Я пытался использовать методы jQuery ready
и load
для добавления обработчиков к соответствующим событиям, но без особого недостатка. Вот полный фрагмент:
var slWin = window.open('', 'WindowName');
var elem = slWin.document.getElementById('slControl');
if (elem == null) {
slWin.location.href = 'PopupPage.aspx';
// this branch doesn't work
$(slWin).load(function () {
elem = slWin.document.getElementById('slControl');
elem.Content.SlObject.MethodA();
});
}
else {
// this branch works fine
elem.Content.SlObject.MethodA();
}
Как мне решить эту проблему? Я не против решений jQuery.