国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 擴(kuò)展 > SilverLight > 正文

silverlight,javascript相互調(diào)用

2024-09-06 20:41:33
字體:
供稿:網(wǎng)友

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)去。

ScriptObject scriptObjcet=(ScriptObject)HtmlPage.Window.GetProperty("createText");scriptObjcet.InvokeSelf("Jerry", "Hello Wolrd");

 

效果

在silverlight調(diào)用javascript函數(shù)

 

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。

[ScriptableType()]   public partial class InvokeMethod : UserControl   {       public InvokeMethod()       {           InitializeComponent();           HtmlPage.RegisterScriptableObject("page", this);
    }
 
    [ScriptableMember]
    public void ChangeText(string newText)
    {
        txbTest.Text="It's invoking by JavaScript "+newText;
    }

  注冊一個腳本化類型時需要指定一個名稱并傳遞一個合適對象的引用,上邊例子中InvokeMethod被注冊時的名稱為page.這樣就告訴 silverlight在web頁面的silverlight控件中創(chuàng)建了另一個叫page的屬性。想調(diào)用這個方法,javascript需要找到 silverlight控件,獲取到它的內(nèi)容然后調(diào)用它的page.ChangeText()方法。

function updateSilverlightText() {           var ele = document.getElementById("myEle");           ele.content.page.ChangeText("This text has been changed");       }

   默認(rèn)情況下,VS會自動添加一個測試頁面,并給包含<object>元素的DIV一個名稱,但是并沒有給包含在里邊 的<object>對象名稱。你需要自己添加一個名稱以方便獲取<object>對象,上邊例子中 的<object>對象名字為myEle。

  調(diào)用javascript函數(shù)

<p onclick="updateSilverlightText()" >Click here to change the text in silverlight</p>

效果

調(diào)用前   在javascript中調(diào)用silverlight方法         調(diào)用后  在javascript中調(diào)用silverlight方法

 

3,瀏覽器中實例化silverlight對象

  和上邊一樣需要創(chuàng)建一個包含ScriptableMember方法的ScriptableType的類

[ScriptableType]   public class GetRandom   {       private Random rdm = new Random();       [ScriptableMember]       public int GetRandomNumber(int from,int end)       {          return  rdm.Next(from,end);       }   }
  同樣也需要將這個類注冊一下,這次需要HtmlPage.RegisterCreateableType()方法
HtmlPage.RegisterCreateableType("random", typeof(GetRandom));
  創(chuàng)建一個注冊類的實例,需要找到silverlight控件并調(diào)用它的ele.content.services.createObject()方法。這個例子中在javascript中調(diào)用此方法
function getRandom() {           var ele = document.getElementById("myEle");           var r = ele.content.services.createObject("random");           alert("Your number is " + r.GetRandomNumber(1, 56));       }
調(diào)用javascript
<input type="button" onclick="getRandom()" value="Click here to get number"/>
 
效果

瀏覽器中實例化silverlight對象

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦城县| 忻城县| 石泉县| 工布江达县| 东乌珠穆沁旗| 邳州市| 包头市| 台中市| 剑川县| 邯郸县| 阜南县| 株洲市| 榕江县| 颍上县| 方山县| 中卫市| 重庆市| 新余市| 凯里市| 正安县| 壤塘县| 南川市| 香格里拉县| 岳普湖县| 嘉定区| 万源市| 沈阳市| 芜湖市| 宝应县| 东明县| 威远县| 昆明市| 龙岩市| 忻州市| 新河县| 孝昌县| 紫云| 石狮市| 永德县| 永寿县| 富蕴县|