Toggle navigation
首页
关于TCPGAME
快乐分享
联系我们
C# 内嵌火狐浏览器GeckoWebBrowser 与JavaScript的交互
Lonner
时间:2021-01-14 10:13:48
阅读:4605
###说明 在C#的winform或WPF窗体程序中嵌入Gecko的Web控件GeckoWebBrowser,加载网页时需要C#内的程序代码与网页内的JS交互,比较常用的是C#代码调用网页内定义的JavaScript方法,不怎么常用的就是在网页内的JS调用.cs文件内的代码方法。 ###C#中调用JS方法 Html代码 ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>TCPGAME</title> <script> function displayDate(){ document.getElementById("demo").innerHTML=Date(); } </script> </head> <body> <h1>C# GeckoWebBrowser与JS交互</h1> <p id="demo">这是一个段落</p> <button type="button" onclick="displayDate()">显示日期</button> </body> </html> ``` C#中调用的代码,注意其中**geckoWeb**是**GeckoWebBrowser**的实例化对象,具体如何嵌入**GeckoWebBrowser**请查看**[C# WPF 火狐浏览器GeckoWebBrowser 的嵌入使用](/p/14 "C# WPF 火狐浏览器GeckoWebBrowser 的嵌入使用")** ```csharp using (Gecko.AutoJSContext js = new Gecko.AutoJSContext(geckoWeb.Window)) { js.EvaluateScript("displayDate();"); //js.EvaluateScript("displayDate('tcpgame');");//有参数 //string result; //js.EvaluateScript("displayDate(');", out result);//有返回值 } ``` ###JS调用C#中的方法 C#中的代码 ```csharp geckoWeb.AddMessageEventListener("myFunction", ((string s) => { MessageBox.Show("这是C#的MessageBox窗口,收到了JS的调用,参数:"+s); })); ``` Html代码 ```html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> function fireEvent(name, data){ event = document.createEvent('MessageEvent'); event.initMessageEvent(name, false, false, data, null, null, null, null); document.dispatchEvent(event); } </script> </head> <body> <button type="button" onclick="fireEvent('myFunction', 'I am Lonner!');">调用一下C#MessageBox弹窗</button> </body> </html> ```
上一章:C# WPF 火狐浏览器GeckoWebBrowser 的嵌入使用
下一章:C# WPF MVVM 动画(Animation)的正确使用姿势