`
terryfeng
  • 浏览: 504750 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Silverlight 与javaScript互操作

阅读更多

Silverlight 调用 javaScript

主要使用 HtmlPage.Window 这个对象

xaml.cs 

private void button1_Click(object sender, RoutedEventArgs e)
        {
            //使用Invoke
            HtmlPage.Window.Invoke("calljs", "Invoke");
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            //创建脚本对象
            ScriptObject calljs =
                (ScriptObject)HtmlPage.Window.GetProperty("calljs");
            //使用InvokeSelf
            calljs.InvokeSelf("InvokeSelf");
        }

        private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
        {
            //JavaScript脚本
            string jsText = @"function calljs(msg){
                        alert(msg);
                    }";
            //创建脚本片段
            HtmlElement element = HtmlPage.Document.CreateElement("Script");
            element.SetAttribute("type", "text/javascript");
            element.SetProperty("text", jsText);
            //添加脚本到Html页面中
            HtmlPage.Document.Body.AppendChild(element);
        }

 

声明创建javaScript  对象的调用方式

private void LayoutRoot_Loaded(object sender, RoutedEventArgs e)
        {
            //JavaScript脚本
            string jsText = @"
                jsObject = function(msg)
                {
                    this.Msg = msg;
                }
                jsObject.prototype.Show = function()
                {
                    alert(this.Msg);
                }";

           //创建脚本对象
            HtmlElement element =  HtmlPage.Document.CreateElement("Script");
            element.SetAttribute("type", "text/javascript");
            element.SetProperty("text", jsText);
            //添加JavaScript到Html页面
            HtmlPage.Document.Body.AppendChild(element);
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            //使用CreateInstance获取JavaScript对象
            ScriptObject script =  HtmlPage.Window.CreateInstance("jsObject" , textBox1.Text);
            script.Invoke("Show");
        }

使用 HtmlWindow 的 Eval 方法

直接写入javascript 的文本,通过

HtmlPage.Window.Eval(textBox1.Text);

来运行这个命令,比如textBox1.Text = “alert('欢迎!')”

 

javaScript 调用  Silverlight

  在xaml.cs 中先要初始化定义好可以被访问的对象和方法

      public javascript5()
        {
            InitializeComponent();
            //注册JavaScript的访问对象
            HtmlPage.RegisterScriptableObject("Builder", this);
        }

        //定义CreateRect为脚本成员
        [ScriptableMember]
        public void CreateRect(int width, int height)
        {
            //创建一个矩形对象
            Rectangle rect = new Rectangle();
            rect.Width = width;
            rect.Height = height;
            rect.Fill = new SolidColorBrush(Colors.Blue);
            LayoutRoot.Children.Clear();
            LayoutRoot.Children.Add(rect);
        }

然后在js的部分就可以调用了

<script type="text/javascript">
        function createRectangle() {
            //根据object的id来获取Silverlight对象
            var xamlobj = document.all('XamlObject');
            //调用Silverlight中的CreateRect方法
            xamlobj.content.Builder.CreateRect(
            document.all('txtWidth').value
            ,document.all('txtHeight').value);
        }
    </script>

 

示例源自Silverlight 开发实践一书

分享到:
评论

相关推荐

    silverlight学习demo实例

    此外,Silverlight允许与JavaScript进行互操作,这样可以利用JavaScript的灵活性来补充Silverlight的功能。 在 BI(商业智能)方面,Silverlight可以用于创建交互式报表和仪表板,提供丰富的数据可视化。学习者可以...

    SilverLight与控制台程序托管的WCF进行垮域通讯实例

    Windows Communication Foundation 是微软提出的一种面向服务的架构,用于构建可互操作、高度灵活、安全可靠的企业级应用程序。WCF 提供了统一的编程模型,可以创建不同类型的网络通信服务,如HTTP、TCP、SMTP等。...

    Silverlight中嵌入HTML、Flash和PDF文件源码.zip

    通过JavaScript互操作性,Silverlight与HTML之间可以共享数据和控制。 3. **嵌入Flash**: 虽然Silverlight和Flash都是富互联网应用技术,但它们不兼容。为了在Silverlight中显示Flash内容,通常需要使用第三方库如...

    SilverLight入门

    Silverlight与JavaScript的互操作性使得在浏览器环境中实现复杂的业务逻辑成为可能,同时保持了与现有Web技术的兼容性。 **结束语** Silverlight的引入开启了Web开发的新篇章,为设计人员和开发人员提供了创新工具...

    Silverlight 常用dll

    3. **System.Windows.Browser.dll**:这个库提供了与宿主浏览器交互的API,例如HTML DOM访问、JavaScript互操作等。 4. **System.Data.Services.Client.dll**:用于与数据服务(如WCF Data Services)进行交互,...

    Silverlight 1.0 SDK RC Preview

    通过JavaScript与Silverlight的互操作,可以实现在客户端进行更复杂的逻辑处理。 **Breaking Changes.rtf** 这个文档很可能详细记录了从Silverlight的早期版本到RC(Release Candidate)版本之间可能存在的破坏性...

    Silverlight 4:使用COM对象与Excel的互操作性

    Silverlight 4是该框架的一个版本,它引入了诸多新特性和增强功能,其中就包括对COM(组件对象模型)对象的支持,这使得开发者能够与诸如Microsoft Excel这样的桌面应用程序进行互操作。 COM是一种二进制接口标准,...

    Silverlight探秘系列课程目录.txt

    介绍Silverlight 1.1版本的新增特性,包括JavaScript互操作性、矢量图形支持等,为后续版本的学习奠定基础。 #### (11) Silverlight 1.1动态应用实例(Level200) 通过实战项目,演示如何利用Silverlight 1.1构建...

    Pro Silverlight 4 in C# for english

    7. **Silverlight与Web的交互**:讲解如何使用浏览器对象模型(Browser API)与JavaScript进行互操作,实现Silverlight应用与网页的无缝整合。 8. **网络通信**:涵盖了HTTP、SOAP和RESTful服务的使用,以及如何利用...

    基于Silverlight 的RIA架构 及百度应用

    Silverlight应用可以与HTML页面无缝集成,通过JavaScript接口实现互操作。此外,Silverlight应用还可以通过本地消息传递在不同域之间通信,实现模块化设计。 **百度Silverlight应用** 百度作为国内知名互联网公司...

    Silverlight 2 Unleashed

    9. **高级主题**:可能包括Silverlight的插件模型、深度链接、脱机支持、Out-of-Browser体验,以及与.NET Framework的互操作性。 10. **实际案例分析**:书中可能会提供真实项目示例,演示如何使用Silverlight构建...

    SL-HtmlInteraction_sourcecode_zips.zip

    - 如何使用Silverlight的JavaScript互操作性来调用HTML页面中的函数或获取HTML元素的状态。 - Silverlight的事件处理机制,以及如何触发或响应HTML页面中的事件。 - 如何使用XAML定义UI并结合C#代码实现业务逻辑。 -...

    Silverlight捕捉WCF异常

    而WCF(Windows Communication Foundation)是微软提供的一种全面的服务层框架,用于构建可互操作的分布式系统。本篇文章将深入探讨如何在Silverlight应用中处理WCF服务可能出现的异常,特别是当WCF服务以控制台程序...

    子窗口、父窗口和Silverlight之间的相互调用

    这涉及到Silverlight与JavaScript的互操作性,这是Silverlight作为富客户端应用的一个重要特性。为了使Silverlight对象能够被JavaScript调用,我们需要做以下几步: 1. **添加ScriptableMember**:在C#的...

    Silverlight behavior 实现unload事件

    这可能需要借助JavaScript和Silverlight的互操作性,因为Silverlight自身没有提供直接的`Unload`事件。 - 使用`HtmlPage.RegisterScriptCallback`方法注册一个JavaScript回调函数,该函数会在浏览器的`window....

    silverlight 4 ria的网站开发1

    7. **企业级功能**:Silverlight 4引入了对企业环境的更多支持,如COM互操作,使得可以调用本地系统上的COM组件,以及更好的Windows集成。 在"Chapter 1"的文件中,可能会涵盖Silverlight 4的基础知识,包括安装和...

    Silverlight调用WCF

    Silverlight,微软推出的富互联网应用(RIA)平台,允许开发者创建具有交互性和媒体丰富的用户界面,而WCF(Windows Communication Foundation)是.NET框架下的一个全面的服务导向架构,用于构建高度可互操作的服务...

    silverlight 断点上传

    WCF是.NET Framework中的一个组件,用于构建可互操作的服务,它可以无缝地集成到Silverlight应用中。在断点上传的场景中,WCF作为服务端接口,接收来自客户端的文件块,并负责存储和合并这些文件块。 实现断点上传...

    sliverlight(部分内容)

    2. **AJAX互操作**:与JavaScript和AJAX库配合,增强页面的动态性。 3. **RIA(Rich Internet Applications)**:Silverlight被视为RIA的代表,提供桌面级的用户体验。 4. **OData支持**:可以访问Open Data ...

    (13)使用SiverLight 1.1动态应用界面的设计与实现

    5. **JavaScript互操作性**: Silverlight 1.1允许JavaScript与.NET代码进行交互,实现页面上的动态行为。 【动态应用界面设计】 在Silverlight 1.1中,动态应用界面的设计主要依赖于XAML和编程逻辑。XAML是一种...

Global site tag (gtag.js) - Google Analytics