SilverLight浏览器交互之:SilverLight程序调用外部Html中的Javascript方法(附源码)
概述
Webbrowser
从 Silverlight 3 开始,您将可以创建在浏览器宿主环境外运行的 Silverlight 应用程序。
通过 Webbrowser 控件,您可以在此宿主环境中显示 HTML 内容。
您可以在 XAML 或代码中添加 Webbrowser 控件。默认情况下,Webbrowser 控件不具有大小。
因此,您必须指定 Height 和 Width 以使控件显示在应用程序中。当 Webbrowser 显示在运行在浏览器中的应用程序时,将显示具有指定高度和宽度的一个矩形,以便代替该控件。
您将 HTML 内容设置为以若干方式显示在 Webbrowser 控件中。
-
将 Source 属性设置为完全限定 URI 或相对 URI。
执行在当前加载的 HTML 中定义的脚本函数。
名称
说明
InvokeScript(String):执行在当前加载的 HTML 中定义的指定脚本。
InvokeScript(String,array<String>[]):使用指定的参数执行在当前加载的 HTML 中定义的指定脚本函数。
Webbrowser.LoadCompleted 事件
当顶级导航完成且内容加载到 Webbrowser 控件中时发生,或在加载期间发生错误时发生。
效果:
xaml代码:
<Grid x:Name="LayoutRoot"> Grid.Background LinearGradientBrush StartPoint="0,0" EndPoint GradientStop Color="#FF0055DD" Offset="0" />="#FF00DDFF"="1"</LinearGradientBrush <!--可以在此空间中显示 HTML 内容。 Source 为Web中ClientBin中的一个页面-->Webbrowser ="web" Source="/script-page.htm" Margin="15" Grid>
cs代码:
public MainPage()
{
InitializeComponent();
//当顶级导航完成且内容加载到 Webbrowser 控件中时发生,或在加载期间发生错误时发生。
web.LoadCompleted +=new LoadCompletedEventHandler(web_LoadCompleted);
}
void web_LoadCompleted(object sender,NavigationEventArgs e)
{
执行在当前加载的 HTML 中定义的脚本函数。
不含参数的Javascript方法 SayHello() web.InvokeScript("SayHello");
有一个参数的Javascript方法 GreetMe(name)GreetMe,'SilverLight');
}
大功告成!