首页  ·  知识 ·  编程语言
JS与C#通过WebBrowser互操作
网友    .NET  编辑:dezai   图片来源:网络
JS与C#通过WebBrowser互操作
JS与C#通过WebBrowser互操作
HTML部分:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读