C#winform程序中webbrowser通信问题

应该是一个很简单的问题,但是刚刚开始接触编程,希望说的详细一点。。。

后台的C#想要把一个变量值赋给webbrowser里运行的一个HTML网页,网页有js。

比如在C#中这样:
int a =1;
Timer t = new Timer();
t.Interval = 1000;
t.Tick += T;
t.Enabled = true;
a++;
(我希望要a一秒加一个数)

然后在网页里js部分:
var a;
function xxx(){ 
alert(a )
  } 
  setInterval("xxx()","1000");
我想能把a的值每次增加的都给网页 让网页用。这里就是弹一下

问题就在 如何让js获取c#中a的值??求大神。

迫不得已来提问,希望各位能用可以让非计算机专业的人能听懂的语言阐述清楚。谢谢各位的帮助。

2个回答

你要更新a的值可以用execScript,1楼给的是调用函数的,你调用xxx并不能更新a的值
可以通过引用Microsoft.mshtml,实现对Javascript的操作,==>http://blog.csdn.net/luxiaoyu_sdc/article/details/6896451

 mshtml.IHTMLDocument2 doc = webBrowser1.Document.DomDocument as mshtml.IHTMLDocument2;
mshtml.IHTMLWindow2 win = doc.parentWindow as mshtml.IHTMLWindow2;
win.execScript(@"window.a="+a, "javascript");
weixin_38864460
Azure蓝天 回复showbo: 谢谢学长。已采纳
2 年多之前 回复
weixin_38864460
Azure蓝天 回复showbo: 嘿嘿
2 年多之前 回复
showbo
支付宝加好友偷能量挖 这都给你发现了
2 年多之前 回复
weixin_38864460
Azure蓝天 回复showbo: 欸,学长欸。。。我今年入学桂电
2 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 bobo说的也很好
2 年多之前 回复
showbo
支付宝加好友偷能量挖 回复Azure蓝天: 如果是字符串注意要加引号,要符合js语法win.execScript(@"window.a='"+a.Replace("'",@"\'")+"'","javascript");
2 年多之前 回复
weixin_38864460
Azure蓝天 谢谢你。
2 年多之前 回复

可以使用 InvokeScript 函数。

下面是参考文章:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=194

内有详细步骤,依照步骤来就可以,希望对您有帮助。

weixin_38864460
Azure蓝天 数据能传过去了 但是只能传一个数据,而且 只能传一次。。。。为什么只能传一次?
2 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 正解,就是这个办法
2 年多之前 回复
weixin_38864460
Azure蓝天 谢谢你,居然是外文的。我阅读一下
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!