silverlight于javascript通信

简介: silverlight小技巧 silverlight于javascript通信 在 silverlight中可以直接使用“HtmlPage.Window.Invoke()” 来调用js方法。也可用“RegisterScriptableObject().”和“[ScriptableMember]”把方法注册到js脚本 中,其调用方法为 “document.getElementById("mysilverlightControlID").Content.Page.UpdateText("你好(来自javascript)"); ”。

silverlight小技巧
silverlight于javascript通信
在 silverlight中可以直接使用“HtmlPage.Window.Invoke()” 来调用js方法。也可用“RegisterScriptableObject().”和“[ScriptableMember]”把方法注册到js脚本 中,其调用方法为 “document.getElementById("mysilverlightControlID").Content.Page.UpdateText("你好(来自javascript)"); ”。
例子:
  • Page.xaml.cs
    • public Page()
      {
          InitializeComponent();
          HtmlPage.RegisterScriptableObject("Page", this);
          HtmlPage.Window.Invoke("TalkToJavaScript", "你好(来自silverlgiht)");
      }

      [ScriptableMember]
      public void UpdateText(string result)
      {
          myTextbox.Text = result;
      }

  • Default.aspx
    • <script type="text/javascript">
      function TalkToJavaScript( data){    
             alert(data);    
             var control = document.getElementById("mysilverlightControlID");   
             control.Content.Page.UpdateText("你好(来自javascript)");  
      }
      </script>

  • Page.xaml
    • <UserControl x:Class="slcalljs.Page"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          Width="400" Height="300">
          <Grid x:Name="LayoutRoot" Background="White">
              <TextBlock x:Name="myTextbox"></TextBlock>
          </Grid>
      </UserControl>
       

相关文章
|
JavaScript 前端开发 UED
Vue.js中的父子组件通信:构建交互性和可维护性的组件
Vue.js是一款流行的JavaScript框架,以其组件化的开发方式而著称。在Vue.js中,父子组件通信是实现组件之间交互和数据传递的重要机制。在本博客中,我们将深入研究父子组件通信的概念、用法、传递数据的方式以及如何有效地利用它来构建交互性和可维护性的组件。
153 0
|
JavaScript 前端开发 UED
Vue.js中的自定义事件:组件间通信的灵活工具
Vue.js是一款流行的JavaScript框架,以其组件化的开发方式而著称。在Vue.js中,自定义事件是一种强大的机制,用于在组件之间进行通信和交互。在本博客中,我们将深入研究自定义事件的概念、创建、触发和监听,以及如何利用它来实现灵活的组件间通信。
145 0
|
JSON JavaScript 前端开发
【JavaScript技术专栏】JavaScript的跨域通信方法
【4月更文挑战第30天】本文探讨了JavaScript中的跨域通信方法,包括:同源策略和跨域通信的概念,以及JSONP、CORS、WebSockets、`window.postMessage()`、代理服务器和WebAssembly的使用。这些技术各有优劣,适用于不同的场景,是Web开发者解决跨域问题的关键工具。随着Web技术的演进,跨域通信的解决方案也将不断更新。
277 0
|
12月前
|
JavaScript 前端开发
前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
Vue | Vue.js 组件化 - 组件间通信
Vue | Vue.js 组件化 - 组件间通信
|
设计模式 存储 消息中间件
JavaScript观察者模式:实现对象间的事件通信!
JavaScript观察者模式:实现对象间的事件通信!
|
JavaScript 前端开发 API
JS案例:前端Iframe及Worker通信解决思路
JS案例:前端Iframe及Worker通信解决思路
291 0
|
JavaScript API
Vue.js组件精讲 组件的通信2:派发与广播——自行实现dispatch和broadcast方法
Vue.js 的 provide/inject API 主要用于跨级组件通信,侧重于子组件获取上级状态。但无法良好处理两种场景:父向子(跨级)传递数据和子向父(跨级)传递数据。在这种情况下,虽然Vue推荐使用Vuex,但在某些场景下,可以使用自定义的`dispatch`和`broadcast`方法。这两个方法在Vue 1.x中存在,但在2.x中被废弃。`$emit`用于触发当前组件的自定义事件,而`$on`用于监听这些事件。在Vue 2.x中,我们将自行实现`dispatch`和`broadcast`以实现类似的功能,允许父子组件(包括跨级)之间的通信,特别是当组件层级不深且无需全面状态管理时
159 0
|
存储 JavaScript 安全
js中多个页面之间如何进行通信?有什么区别?
js中多个页面之间如何进行通信?有什么区别?
264 0
|
JavaScript
js实现跨浏览器tab选项卡页通信、传参,监听localStorage.变量的实时变化,实现打开多个浏览器页面窗口相互可以传参通信
js实现跨浏览器tab选项卡页通信、传参,监听localStorage.变量的实时变化,实现打开多个浏览器页面窗口相互可以传参通信