WebBrowser js与C#交互
下面是HTML实现。(E:/kzf/C/svn/IvyCloudVideo/src/XYLite/bin/Release/test.html)
<html> <head> <script> function test(message) { alert(message); } </script> </head> <body> <button onclick="window.external.Test('called from script code')">call client code from script code</button> </body> </html>
如下所示WPF实现。
webBrowser.ObjectForScripting = new ScriptEvent(); webBrowser.LoadCompleted += new System.Windows.Navigation.LoadCompletedEventHandler(webBrowser_LoadCompleted); webBrowser.Navigate("E:/kzf/C/svn/IvyCloudVideo/src/XYLite/bin/Release/test.html");
[System.Runtime.InteropServices.ComVisible(true)] public class ScriptEvent { //供JS调用 public void Test(string message) { MessageBox.Show(message); } }
private void Button_Click(object sender, RoutedEventArgs e) { try { //要在web加载完成后才能调用成功。通过LoadCompleted事件检测。 //执行当前加载的文档所实现的脚本函数。 webBrowser.InvokeScript("test", "asb"); } catch (Exception ex) { Commons.LogHelper.Error("error"); } }