作者: littleboy
2023-10-14 16:09:22
WebBrowser与JS交互
后台代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| using System; using System.IO; using System.Runtime.InteropServices; using System.Windows.Forms;
namespace WinFormPractice { [ComVisible(true)] public partial class FormBrowserJs : Form { public FormBrowserJs() { InitializeComponent();
webBrowser.Navigate(Path.Combine(Application.StartupPath, "HTMLBrowserJs.html")); webBrowser.ObjectForScripting = this; }
public void ShowMsgForJs(string msg) { TBRecv.Text += $"{msg}\r\n"; }
private void BtnSend_Click(object sender, EventArgs e) { webBrowser.Document.InvokeScript("ShowMsgForCSharp", new []{ TBSend.Text }); } } }
|
网页内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> <script> //alert("准备就绪"); window.external.ShowMsgForJs("准备就绪");
function ShowMsgForCSharp(str) { var msg = "收到消息:" + str;
//1、调用C#方法; window.external.ShowMsgForJs(msg); //2、改变网页内容; document.getElementById("info").innerHTML += msg + "<br/>"; //3、弹窗; alert(msg); } </script> </head> <body> <div>通过 WebBrowser 让 JS 与 C# 代码交互 测试页</div> <div id="info"></div> </body> </html>
|
参考资料
Winform 通过 WebBrowser 与 JS 交互 - 独立观察员