2009-10-07 74 views
1

我有一個包含Silverlight控件的Web應用程序。當訪問包含silverlight控件的特定頁面時,執行javascript,並且如果此腳本執行得太早,則腳本會在IE中崩潰javascript引擎,即使try/catch也不能處理該錯誤。嘗試訪問Silverlight內容時Javascript崩潰了

簡單的JavaScript

silverlightHtmlElement.Content.SilverlightApplication.SilverlightMethod(); 

如果Silverlight控件元素尚未完全加載腳本崩潰,而不僅僅是劇本,沒有進一步的JavaScript是頁面上的所有執行。

一個簡單的「if (silverlightHtmlElement.Content.SilverlightApplication)」來檢查它的可訪問性是否足以應對崩潰。

問題是我以後不能在頁面上執行腳本。 之前有人看過這個嗎?

回答

0

您可以編寫一些Silverlight代碼,在完成初始化後執行javascript函數。這樣,您的Silverlight應用程序可以在完成加載時通知網頁。

HtmlPage.Window.Invoke("myJsFunction", null); 
1

你需要確保不執行代碼,直到控制被激活/加載,這PARAM添加到您的Silverlight對象標記:

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

然後在網頁上定義一個JavaScript函數這樣

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

那麼你可以只是你調用方法添加到加載事件處理程序或查詢應用程序變量爲空,看看它準備好了。

相關問題