webbrowser 里面的js怎么调用C#

webbrowser里面的js怎么调用C#的方法?winform程序,需要一个示例。谢谢~~... webbrowser 里面的js怎么调用C#的方法?winform程序,需要一个示例。谢谢~~ 展开
 我来答
xiangjuan314
推荐于2018-03-14 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2782万
展开全部
通过webBrowser实现C#和javascript互调
实现步骤:
一、新建一个窗体,加入webBrowser控件
控件名:webBrowser1

二、在窗体后台代码加入如下定义
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{
...
}

三、加载网页
webBrowser1.Navigate(Application.StartupPath + "/UpDateReport.htm");
webBrowser1.ObjectForScripting = this; //这句必须,不然js不能调用C#

四、调用脚本方法
/// <summary>
/// 脚本方法
/// </summary>
/// <param name="tag">JS函数名|参数1|参数2</param>
/// <returns></returns>
private object EXEC_JS(System.Windows.Forms.WebBrowser webBrowser, string tag)
{
string[] args = tag.Split('|');
if (args.Length == 1)
{
return webBrowser.Document.InvokeScript(args[0], null);
}
else
{
object[] objects = new object[args.Length - 1];
Array.Copy(args, 1, objects, 0, objects.Length);
return webBrowser.Document.InvokeScript(args[0], objects);
}
}

五、C#调用脚本方法例子,可以有返回值
//JS方法
<script language="javascript">
function js_fun(args)
{
alert("我是通过js脚本弹出的。你输入的内容是:"+args);
return "JAVASCRIPT";
}
</script>
//C#代码
object returnvalue = EXEC_JS(webBrowser1, "js_fun|参数字符串");
MessageBox.Show("js方法返回值是:" + returnvalue.ToString());

六、JS调用C#方法的例子
//C#方法
public string Test(string args)
{
return "你输入的是:"+args;
}
//JS代码
<script language="javascript">
window.onload = function()
{
var CS_returnvalue= window.external.Test("aaa");
alert(CS_returnvalue);
}
</script>
梦想而战520
推荐于2016-03-23 · 超过21用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:41.3万
展开全部
js中调用c#方法 :
namespace WindowsFormsApplication1
{
//申名托管类型,对com是可见的
[System.Runtime.InteropServices.ComVisible(true)]
}
private void Form1_Load(object sender, EventArgs e)
{

修改webbrowser的属性使c#可以调用js方法:
webBrowser1.ObjectForScripting = this;
}
首先在c#中定义被js调用的方法:

public void MyMessageBox(string message)
{
MessageBox.Show(message);
}

在js中调用c#方法:

<!-- 调用C#方法 -->
<button onclick="window.external.MyMessageBox('javascript访问C#代码')" >
javascript访问C#代码</button>
追问
这段程序我看过,我就是在写工程的时候老是出错,你能写成一个工程吗?对了还会加分!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
固始县29ijLI
2014-08-27 · TA获得超过114个赞
知道答主
回答量:119
采纳率:0%
帮助的人:61万
展开全部
webBrowser1.Navigate("javascript:alert('hello');");

说明
webBrowser1.Navigate("javascript:[你要执行的javascript语句];");

如果你要执行那个函数代码如下:
webBrowser1.Navigate("javascript:test.work('1','0','5');");
追问
麻烦发一个项目文件,功能是需要js调用C#,而不是C#调用js。如果没有问题的话会第一时间采纳的。谢谢~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式