2010-09-02 45 views
5

我有一個頁面上有一個Silverlight應用程序。嵌入在我的頁面中的是一個身份驗證密鑰,Silverlight應用程序需要執行所有Web服務請求。因此,加載Silverlight應用程序需要獲取密鑰並初始連接到WCF服務。問題是,它是不可預知的頁面或silverlight是否會先加載,所以我不能使用頁面onload =事件,因爲有時silverlight是空的,我不能使用silverlight初始化方法,因爲有時js函數仍然是未定義的 - 哪我認爲它意味着它從緩存中加載頁面,加載SL,然後解析JS。Silverlight和Javascript的互動

謝謝。

回答

1

你可以得到Silverlight的互操作調用JS方法,並使用獲得它的返回值如下:

// Returning a String 
string stringValue = (string)HtmlPage.Window.Invoke("myJSMethod"); 

其中myJSMethod返回嵌入式密鑰。但是如果你正在嵌入密鑰,爲什麼不把它放進<object><param>

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
    <param name="myKey" value="myKeyValue"/> 
    ... 
</object> 
+2

關於將其嵌入到參數中的重要建議。一個需要考慮的事情是,不要使用Object,而是通過調用Silverlight.js中的Silverlight.createObject實例化Silverlight控件。它比靜態對象標籤提供了更加嚴格的控制。 – 2011-03-18 22:08:41