麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 擴展 > SilverLight > 正文

silverlight,javascript相互調用

2024-09-06 20:41:33
字體:
來源:轉載
供稿:網友

silverlight,javascript相互調用方法

1,在silverlight調用javascript函數

  用System.Windows.Brower命名空間下的某些silverlight類,你可以調用一段腳本寫的javascript函數。這樣就給你的silverlight代碼一個很有規律的方式來和頁面交互。

    比如:你在HTML頁面中有下邊一段javascript函數

function createText(message,user) {  var el = document.getElementById("myElement");  el.innerHTML = user+" "+message;}

  silverlight要調用這個javascript函數,首先用HtmlWindow.GetProperty()方法并把javascript的名字傳進去來得到一個ScriptObjcet對 象,然后在調用ScriptObjcet對象的InvokeSelf()方法。調用InvokeSelf方法時,可以把javascript函數的所有參 數都傳進去。

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

 

效果

在silverlight調用javascript函數

 

2,在javascript中調用silverlight方法

  在javascript中調用silverlight方法,主要有以下步驟:

1)在silverlight程序中創建一個公開的方法來暴露你想在web頁面中用的函數。

2)在方法上邊添加一個ScriptableMember屬性。

3)在包含這個方法的類上添加ScriptableType屬性。

 4)調用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控件中創建了另一個叫page的屬性。想調用這個方法,javascript需要找到 silverlight控件,獲取到它的內容然后調用它的page.ChangeText()方法。

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

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

  調用javascript函數

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

效果

調用前   在javascript中調用silverlight方法         調用后  在javascript中調用silverlight方法

 

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

  和上邊一樣需要創建一個包含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));
  創建一個注冊類的實例,需要找到silverlight控件并調用它的ele.content.services.createObject()方法。這個例子中在javascript中調用此方法
function getRandom() {           var ele = document.getElementById("myEle");           var r = ele.content.services.createObject("random");           alert("Your number is " + r.GetRandomNumber(1, 56));       }
調用javascript
<input type="button" onclick="getRandom()" value="Click here to get number"/>
 
效果

瀏覽器中實例化silverlight對象

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av最新在线观看 | 视频一区国产精品 | 国产一区免费观看 | 视频www| 日韩黄色一级视频 | 黄色免费播放网站 | 亚洲精品无码不卡在线播放he | 播色网 | 国产成年人视频网站 | 亚洲成人夜色 | 中文在线观看视频 | 91成人午夜性a一级毛片 | 黄色av片在线观看 | 9191色| 国产免费一级大片 | 青热久思思 | 宅男噜噜噜66国产在线观看 | 成人在线视频一区 | 欧美一级精品 | 国产精品视频中文字幕 | 91av国产在线 | 毛片免费在线播放 | 国产精品自在线拍 | 国产在线观看91一区二区三区 | 欧美精品一级 | 久久精品视频网站 | 国产大片全部免费看 | hdjapanesemassagehd日本 | 国产女同玩人妖 | 欧美一级黄色片在线观看 | 精品一区二区久久久久久久网精 | av日韩一区二区 | 国产好片无限资源 | 欧美成人精品欧美一级乱黄 | 国产精品久久久久久久午夜片 | 黄色高清免费网站 | 亚洲国产一区二区三区 | 国产精品久久久久久久久久久久午夜 | 999久久国精品免费观看网站 | 黄色影院网站 | 国产一区二区三区欧美 |