c# 中执行js的问题
2015-12-15 12:06
615 查看
在C#中执行js一般的方法如下:
使用execScript :没有返回值,不能传参数。mshtml.IHTMLDocument2 doc = webBrowser.Document.DomDocument as mshtml.IHTMLDocument2;
mshtml.IHTMLWindow2 win = doc.parentWindow as mshtml.IHTMLWindow2;
win.execScript(@”alert(‘hello webbrowser’)”, “javascript”);
使用InvokeScript,可以返回值,且可传参数。
webBrowser.Document.InvokeScript(“test”);
**但是,某些情况下- 使用InvokeScript,可能会异常,例如:
string s=webBrowser.Document.InvokeScript(“myobject.test()”).ToString();
可以使用下面的方法解决:
webBrowser.Document.InvokeScript(“eval”,new object[]{“myobject.test()”}).ToString()
但是如果需要外部传参数的话,只有用下面的方法了,比较麻烦,但是效果不错:
HtmlElement head = webBrowser.Document.GetElementsByTagName(“head”)[0];
HtmlElement scriptEl = webBrowser.Document.CreateElement(“script”);
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = “function pwdSetSk(sessionKey) { pgeditor.pwdSetSk(sessionKey);return ‘secess’;} function pwdResult() { result=pgeditor.pwdResult();return result;} function machineNetwork() { result=pgeditor.machineNetwork();return result;}”;
head.AppendChild(scriptEl);
string test = webBrowser.Document.InvokeScript(“pwdSetSk”, new object[] { sessionKey }).ToString();
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- Python3写爬虫(四)多线程实现数据爬取
- Scrapy的架构介绍
- JavaScript演示排序算法
- 爬虫笔记
- javascript实现10进制转为N进制数
- c#调用COM组件
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享