silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverLight 嵌入 网页 解决方案大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  1.在silverlight调用javascript函数   用System.Windows.brower命名空间下的某些silverlight类,你可以调用一段脚本写的javascript函数。这样就给你的silverlight代码一个很有规律的方式来和页面交互。   比如:你在HTML页面中有下边一段javascript函数 1 2 3 4 function createText(m
  1.在silverlight调用javascript函数

  用System.Windows.brower命名空间下的某些silverlight类,你可以调用一段脚本写的javascript函数。这样就给你的silverlight代码一个很有规律的方式来和页面交互。

  比如:你在HTML页面中有下边一段javascript函数


1
2
3
4@H_489_30@ 
@H_419_21@
function createText(message,user) {
           var el = document.getElementById("myElement");
           el.innerHTML = user+" "+message;
       }
@H_489_30@ @H_419_21@

  调用这个函数,首先用HtmlWindow.Getproperty()方法并把javascript的名字传进去来得到一个ScriptObjCET对象,然后在调用ScriptObjCET对象的InvokeSelf()方法调用InvokeSelf方法时,可以把javascript函数的所有参数都传进去。


1
2@H_489_30@ 
@H_419_21@
ScriptObject scriptObjCET=(ScriptObject)HtmlPage.Window.GetProperty("createText");
scriptObjCET.InvokeSelf("jerry","Hello Wolrd");
@H_489_30@ @H_419_21@

  @L_616_24@

silverLight 嵌入 网页 解决方案

 

  2.在javascript中调用silverlight方法

  在javascript中调用silverlight方法主要有以下步骤:

  1.在silverlight程序中创建一个公开的方法来暴露你想在web页面中用的函数

  2.在方法上边添加一个ScriptableMember属性

  3.在包含这个方法的类上添加ScriptableType属性

  4.调用HtmlPage.RegisterScriptabLeobject()将这个方法暴露给javascript。


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15@H_489_30@ 
@H_419_21@
[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;
    }
}
@H_489_30@ @H_419_21@

  注册一个脚本化类型时需要指定一个名称并传递一个合适对象的引用,上边例子中InvokeMethod被注册时的名称为page.这样就告诉silverlight在web页面的silverlight控件中创建了另一个叫page的属性。想调用这个方法,javascript需要找到silverlight控件,获取到它的内容然后调用它的page.ChangeText()方法


1
2
3
4@H_489_30@ 
@H_419_21@
function updateSilverlightText() {
           var ele = document.getElementById("myEle");
           ele.content.page.ChangeText("This text has been changed");
       }
@H_489_30@ @H_419_21@

     认情况下,VS会自动添加一个测试页面,并给包含<object>元素的DIV一个名称,但是并没有给包含在里边的<object>对象名称。你需要自己添加一个名称以方便获取<object>对象,上边例子中的<object>对象名字为myEle。

    调用javascript函数


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

  @L_616_24@调用

silverLight 嵌入 网页 解决方案

 

  调用

silverLight 嵌入 网页 解决方案

 

  3.浏览器中实例化silverlight对象

  和上边一样需要创建一个包含ScriptableMember方法的ScriptableType的类


 1
 2
 3
 4
 5
 6
 7
 8
 9
10@H_489_30@ 
@H_419_21@
[ScriptableType]
   public class GetRandom
   {
       private Random rdm = new Random();
       [ScriptableMember]
       public int GetRandomnumber(int from,int end)
       {
          return  rdm.Next(from,end);
       }
   }
@H_489_30@ @H_419_21@

  同样也需要将这个类注册一下,这次需要HtmlPage.RegisterCreateabletype()方法


1@H_489_30@ 
@H_419_21@
HtmlPage.RegisterCreateableType("random",typeof(GetRandom));
@H_489_30@ @H_419_21@

  创建一个注册类的实例,需要找到silverlight控件并调用它的ele.content.services.createObject()方法。这个例子中在javascript中调用方法


1
2
3
4
5@H_489_30@ 
@H_419_21@
function getRandom() {
           var ele = document.getElementById("myEle");
           var r = ele.content.services.createObject("random");
           alert("Your number is " + r.GetRandomnumber(1,56));
       }
@H_489_30@ @H_419_21@

  调用javascript


1@H_489_30@ 
@H_419_21@
<input type="button" onclick="getRandom()" value="Click here to get number"/>
@H_489_30@ @H_419_21@

  @L_616_24@

silverLight 嵌入 网页 解决方案

大佬总结

以上是大佬教程为你收集整理的silverLight 嵌入 网页 解决方案全部内容,希望文章能够帮你解决silverLight 嵌入 网页 解决方案所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。