JS与C#通过WebBrowser互操作
HTML部分:
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<mce:style type="text/css"><!--
div {
margin: 10px;
}
p {
font-size: small;
}
--></mce:style><style type="text/css" mce_bogus="1">div {
margin: 10px;
}
p {
font-size: small;
}</style>
<mce:script language="javascript" type="text/javascript"><!--
提供给C#程序调用的方法 -->
function messageBox(message)
{
alert(message);
}
// --></mce:script>
</head>
<body>
<div>
<!-- 调用C#方法 -->
<button onclick="window.external.MyMessageBox('javascript访问C#代码')">javascript访问C#代码
</button></div>
</body>
</html>
CS代码部分:
using System;
using System.IO;
using System.Windows.Forms;
namespace JsAndCsharp
{
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Text = @"JS与C#互操作 - WebBrowser";
FileInfo file = new FileInfo("index.htm");
webBrowser1.Url = new Uri(file.FullName);
webBrowser1.ObjectForScripting = this; //为Js提供访问的C#类,这个类要求ComVisibleAttribute(true)
}
private void button1_Click(object sender, EventArgs e)
{
object[] objects=new object[1];
objects[0] = "C#访问JavaScript脚本";
webBrowser1.Document.InvokeScript("messageBox", objects); //调用Js的messageBox方法
}
//Js将会调用此方法
public void MyMessageBox(string message)
{
MessageBox.Show(message);
}
}
}
本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow