c#的winform可以直接调用js函数,得到结果吗?

sunsi461902 2010-05-08 11:33:15
本地磁盘有个js文件,我不想再开webbrowser了,c#中有没有相应的类,可以直接通过调用本地的js文件,来得到函数结果?
...全文
1906 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
nierenyi 2011-11-21
  • 打赏
  • 举报
回复
我也没明白是可以还是不可以?
hjx398 2010-08-29
  • 打赏
  • 举报
回复
学习了
yuquan1987 2010-07-10
  • 打赏
  • 举报
回复
lz问题解决了吗?我现在也遇到这个问题了。看了楼上的大侠们的回复,我还是没有思路。
wiki14 2010-05-08
  • 打赏
  • 举报
回复

<script type="text/javascript">
function temp(obj)
{
document.all["Country"].innerText=obj;
}
</script>



mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2) webBrowser1.Document.DomDocument;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;
win.execScript("temp('fdsafadsf)", "javascript");//调用函数temp
zzx509 2010-05-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zenghd 的回复:]
引用 3 楼 zenghd 的回复:

可以的,你把这个js文件文件编译成DLL,然后在C#引用再直接调用方法就行了
[/Quote]
学习了,不过JS中返回自定义的函数类型不知道编译后会怎样
ZengHD 2010-05-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zenghd 的回复:]

可以的,你把这个js文件文件编译成DLL,然后在C#引用再直接调用方法就行了
[/Quote]

http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/28/1278573.html
zzx509 2010-05-08
  • 打赏
  • 举报
回复
不好意思看错了,代码没有问题。
zzx509 2010-05-08
  • 打赏
  • 举报
回复
构造里面实例化自己的写法还没见过。
我试下了,死循环了。
zzx509 2010-05-08
  • 打赏
  • 举报
回复
a82344626,能解释下下面这句吗?
GoodInfo _coodInfo = new GoodInfo();
GoodInfo类是在本程序集定义的?对应JS中定义的对象吗?

a82344626 2010-05-08
  • 打赏
  • 举报
回复
真不知道你们的分是不是混来的
a82344626 2010-05-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 maole413149 的回复:]
mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2) webBrowser1.Document.DomDocument;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;
win.execScript("temp('fdsafadsf)"……
[/Quote]
晕大家都没看到他不要用【我不想再开webbrowser了】吗?
wjq 2010-05-08
  • 打赏
  • 举报
回复
加一个webbrower控件,通过浏览器控件执行你的js函数
wuyq11 2010-05-08
  • 打赏
  • 举报
回复
webbrower调用
IHTMLDocument2 doc = (IHTMLDocument2)WebShow.Document;
IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc.parentWindow;
win.execScript("A();", "javascript");

webBrowser1.Document.InvokeScript("A",
new String[] { "" });
a82344626 2010-05-08
  • 打赏
  • 举报
回复

private GoodsInfo()
{
System.Net.HttpWebRequest hwr = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("http://imgcache.qq.com/qzone/app/booth/js/goods.js");
System.IO.StreamReader sr = new System.IO.StreamReader(hwr.GetResponse().GetResponseStream(), Encoding.Default);
Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine();
object o1 = ve.GetOption("fast");
ve.SetOption("fast", false);
object o = Microsoft.JScript.Eval.JScriptEvaluate("var commerce_embed=[];" + sr.ReadToEnd() + "(GoodsInfo)", ve);
for (int i = 0; i < Convert.ToInt32(((Microsoft.JScript.ArrayObject)o).length); i++)
{
Microsoft.JScript.JSObject jsobj = (((Microsoft.JScript.ArrayObject)o)[i]) as Microsoft.JScript.JSObject;
if (jsobj != null && jsobj["name"] != null)
{
GoodInfo _coodInfo = new GoodInfo();
_coodInfo.Name = jsobj["name"].ToString();
_coodInfo.Money = Convert.ToInt32(jsobj["money"]);
_coodInfo.Price = Convert.ToInt32(jsobj["price"]);
_coodInfo.Love = Convert.ToInt32(jsobj["love"]);
if (!base.ContainsKey(i))
{
base.Add(i, _coodInfo);
}
}

}
}

这是我写软件里的一段代码!
返回一个JS数组
maole413149 2010-05-08
  • 打赏
  • 举报
回复
mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2) webBrowser1.Document.DomDocument;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;
win.execScript("temp('fdsafadsf)", "javascript");
ZengHD 2010-05-08
  • 打赏
  • 举报
回复
可以的,你把这个js文件文件编译成DLL,然后在C#引用再直接调用方法就行了
黑哥 2010-05-08
  • 打赏
  • 举报
回复
winform 调 JS ????


我要学习..

110,574

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧