Silverlight(27) - 2.0网页之可脚本化, 与DOM的交互, 与JavaScript的交互
2009-02-16 11:57:05 来源:WEB开发网3、Silverlight与网页的JavaScript之间的交互
JSDemo.xaml
<UserControl x:Class="Silverlight20.WebPage.JSDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel HorizontalAlignment="Left" Margin="5">
<Button Margin="5" x:Name="invokeJS" Content="调用JavaScript" Click="invokeJS_Click" />
<TextBox Margin="5" x:Name="txtMsg" />
</StackPanel>
</UserControl>
JSDemo.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Browser;
namespace Silverlight20.WebPage
{
public partial class JSDemo : UserControl
{
public JSDemo()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(JSDemo_Loaded);
}
private void invokeJS_Click(object sender, RoutedEventArgs e)
{
// 调用页面的 JavaScript 方法
HtmlPage.Window.Invoke("silverlightInvokeJS", "webabcd");
// 执行任意 JavaScript 语句
HtmlPage.Window.Eval("silverlightInvokeJS('webabcd2')");
}
void JSDemo_Loaded(object sender, RoutedEventArgs e)
{
HtmlPage.Document.GetElementById("btnHello").SetStyleAttribute("display", "inline");
// 将此对象注册到客户端中,所对应的客户端的对象名为 silverlightObject
HtmlPage.RegisterScriptableObject("silverlightObject", this);
}
/**//// <summary>
/// Hello 方法
/// 暴露给页面的方法,调用后在 Silverlight 中显示结果
/// </summary>
/// <param name="name">名字</param>
[ScriptableMember] // 脚本化此方法
public void hello(string name)
{
txtMsg.Text += string.Format("Hello: {0}rn", name);
}
}
}
Tags:Silverlight 网页 脚本
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接