silverlight,javascript相互調(diào)用方法
1,在silverlight調(diào)用javascript函數(shù)
用System.Windows.Brower命名空間下的某些silverlight類,你可以調(diào)用一段腳本寫的javascript函數(shù)。這樣就給你的silverlight代碼一個很有規(guī)律的方式來和頁面交互。
比如:你在HTML頁面中有下邊一段javascript函數(shù)
function createText(message,user) { var el = document.getElementById("myElement"); el.innerHTML = user+" "+message;}
silverlight要調(diào)用這個javascript函數(shù),首先用HtmlWindow.GetProperty()方法并把javascript的名字傳進(jìn)去來得到一個ScriptObjcet對 象,然后在調(diào)用ScriptObjcet對象的InvokeSelf()方法。調(diào)用InvokeSelf方法時,可以把javascript函數(shù)的所有參 數(shù)都傳進(jìn)去。
效果
2,在javascript中調(diào)用silverlight方法
在javascript中調(diào)用silverlight方法,主要有以下步驟:
1)在silverlight程序中創(chuàng)建一個公開的方法來暴露你想在web頁面中用的函數(shù)。
2)在方法上邊添加一個ScriptableMember屬性。
3)在包含這個方法的類上添加ScriptableType屬性。
4)調(diào)用HtmlPage.RegisterScriptableObject()將這個方法暴露給javascript。
注冊一個腳本化類型時需要指定一個名稱并傳遞一個合適對象的引用,上邊例子中InvokeMethod被注冊時的名稱為page.這樣就告訴 silverlight在web頁面的silverlight控件中創(chuàng)建了另一個叫page的屬性。想調(diào)用這個方法,javascript需要找到 silverlight控件,獲取到它的內(nèi)容然后調(diào)用它的page.ChangeText()方法。
默認(rèn)情況下,VS會自動添加一個測試頁面,并給包含<object>元素的DIV一個名稱,但是并沒有給包含在里邊 的<object>對象名稱。你需要自己添加一個名稱以方便獲取<object>對象,上邊例子中 的<object>對象名字為myEle。
調(diào)用javascript函數(shù)
效果
調(diào)用前 調(diào)用后
3,瀏覽器中實例化silverlight對象
和上邊一樣需要創(chuàng)建一個包含ScriptableMember方法的ScriptableType的類
調(diào)用javascript
效果
新聞熱點(diǎn)
疑難解答
圖片精選