C# winform WebBrowser怎么获取js中的变量的值?怎么触发js的事件? 40
C#我有一个winform程序需要访问别人的网页并且在我的程序里触发网页中的JS事件但JS事件没有返回值,我需要返回值,所以只能获取事件中的变量,怎样才可以获得JS事件中...
C# 我有一个winform 程序 需要访问别人的网页 并且在我的程序里触发网页中的JS事件 但JS事件没有返回值,我需要返回值,所以只能获取事件中的变量,怎样才可以获得JS事件中的变量呢?在线等...
展开
1个回答
展开全部
参考如下代码:
//项目中添加Micrsoft.mshtml引用
//Begin temp.htm-------
<html>
<head>
<title>demo</title>
<script language="JavaScript" type="text/javascript">
var testText = "Zswang";
function ShowMessage(AText)
{
alert(testText);
alert(AText);
}
</script>
</head>
</html>
//End temp.htm-------
using mshtml;
using System.Reflection;
private void button1_Click(object sender, EventArgs e)
{
IHTMLDocument2 vDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLWindow2 vWindow = (IHTMLWindow2)vDocument.parentWindow;
Type vWindowType = vWindow.GetType();
object testText = vWindowType.InvokeMember("testText",
BindingFlags.GetProperty, null, vWindow, new object[] { }); // 读取
Console.WriteLine(testText);
vWindowType.InvokeMember("testText",
BindingFlags.SetProperty, null, vWindow, new object[] { "Zswang 路过" }); // 设置
vWindowType.InvokeMember("ShowMessage",
BindingFlags.InvokeMethod, null, vWindow, new object[] { 12345 }); // 执行方法
}
private void button2_Click(object sender, EventArgs e)
{
IHTMLDocument2 vDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLWindow2 vWindow = (IHTMLWindow2)vDocument.parentWindow;
vWindow.execScript("ShowMessage(67890);", "JavaScript"); // 执行脚本
}
//项目中添加Micrsoft.mshtml引用
//Begin temp.htm-------
<html>
<head>
<title>demo</title>
<script language="JavaScript" type="text/javascript">
var testText = "Zswang";
function ShowMessage(AText)
{
alert(testText);
alert(AText);
}
</script>
</head>
</html>
//End temp.htm-------
using mshtml;
using System.Reflection;
private void button1_Click(object sender, EventArgs e)
{
IHTMLDocument2 vDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLWindow2 vWindow = (IHTMLWindow2)vDocument.parentWindow;
Type vWindowType = vWindow.GetType();
object testText = vWindowType.InvokeMember("testText",
BindingFlags.GetProperty, null, vWindow, new object[] { }); // 读取
Console.WriteLine(testText);
vWindowType.InvokeMember("testText",
BindingFlags.SetProperty, null, vWindow, new object[] { "Zswang 路过" }); // 设置
vWindowType.InvokeMember("ShowMessage",
BindingFlags.InvokeMethod, null, vWindow, new object[] { 12345 }); // 执行方法
}
private void button2_Click(object sender, EventArgs e)
{
IHTMLDocument2 vDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLWindow2 vWindow = (IHTMLWindow2)vDocument.parentWindow;
vWindow.execScript("ShowMessage(67890);", "JavaScript"); // 执行脚本
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询