如何从WebBrowser控件的onclick得到实际的JavaScript值

 我来答
wyd52x
2016-09-20 · TA获得超过1943个赞
知道小有建树答主
回答量:520
采纳率:0%
帮助的人:632万
展开全部
winform 的 WebBrowser ? 如果是,可以通过js调用C#的方法用参数传递值

1)在c#中调用js函数
如果要传值,则可以定义object[]数组。

具体方法如下例子:

首先在js中定义被c#调用的方法:

function Messageaa(message)
{
alert(message);
}

在c#调用js方法Messageaa

private void button1_Click(object sender, EventArgs e)
{
// 调用JavaScript的messageBox方法,并传入参数
object[] objects = new object[1];
objects[0] = "c# call javascript";
webBrowser1.Document.InvokeScript("Messageaa", objects);
}
2) 在js中调用c#方法

在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>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式