Javascript падает при попытке получить доступ к содержимому Silverlight - PullRequest
1 голос
/ 07 октября 2009

У меня есть веб-приложение, содержащее элемент управления silverlight. При обращении к определенной странице, содержащей элемент управления silverlight, выполняется javascript, и если этот сценарий выполняется слишком рано, сценарий завершает работу механизма javascript в IE, даже попытка / отлов не может обработать ошибку.

Простой JavaScript

silverlightHtmlElement.Content.SilverlightApplication.SilverlightMethod();

Если элемент управления silverlight не был полностью загружен, происходит сбой сценария, и не только сценарий, дальнейший JavaScript не выполняется на странице вообще.

Простой "if (silverlightHtmlElement.Content.SilverlightApplication)", чтобы проверить, достаточно ли доступного для сбоя.

Проблема в том, что я не могу выполнить скрипт позже на странице. Кто-нибудь еще видел это раньше?

Ответы [ 2 ]

1 голос
/ 08 октября 2009

вам нужно убедиться, что код не будет выполнен, пока элемент управления не будет активен / загружен, добавьте этот параметр в тег объекта silverlight:

<param name="onLoad" value="pluginLoaded" />

затем определите функцию javascript на странице следующим образом:

var app= null;
function pluginLoaded(sender, args) {
    app= sender.getHost();
}

тогда вы можете просто добавить свой вызов метода в загруженный обработчик событий или запросить переменную приложения для нуля, чтобы увидеть, готов ли он.

0 голосов
/ 08 октября 2009

Вы можете написать некоторый код Silverlight, который выполняет функцию javascript после завершения инициализации. Таким образом, ваше приложение Silverlight может уведомить веб-страницу о завершении загрузки.

HtmlPage.Window.Invoke("myJsFunction", null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...