17 个解决方案
#1
<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
#2
winform 调 JS ????
我要学习..
我要学习..
#3
可以的,你把这个js文件文件编译成DLL,然后在C#引用再直接调用方法就行了
#4
mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2) webBrowser1.Document.DomDocument;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;
win.execScript("temp('fdsafadsf)", "javascript");
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;
win.execScript("temp('fdsafadsf)", "javascript");
#5
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数组
#6
webbrower调用
IHTMLDocument2 doc = (IHTMLDocument2)WebShow.Document;
IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc.parentWindow;
win.execScript("A();", "javascript");
webBrowser1.Document.InvokeScript("A",
new String[] { "" });
IHTMLDocument2 doc = (IHTMLDocument2)WebShow.Document;
IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc.parentWindow;
win.execScript("A();", "javascript");
webBrowser1.Document.InvokeScript("A",
new String[] { "" });
#7
加一个webbrower控件,通过浏览器控件执行你的js函数
#8
晕大家都没看到他不要用【我不想再开webbrowser了】吗?
#9
真不知道你们的分是不是混来的
#10
a82344626,能解释下下面这句吗?
GoodInfo _coodInfo = new GoodInfo();
GoodInfo类是在本程序集定义的?对应JS中定义的对象吗?
GoodInfo _coodInfo = new GoodInfo();
GoodInfo类是在本程序集定义的?对应JS中定义的对象吗?
#11
构造里面实例化自己的写法还没见过。
我试下了,死循环了。
我试下了,死循环了。
#12
不好意思看错了,代码没有问题。
#14
学习了,不过JS中返回自定义的函数类型不知道编译后会怎样
#15
lz问题解决了吗?我现在也遇到这个问题了。看了楼上的大侠们的回复,我还是没有思路。
#16
学习了
#17
我也没明白是可以还是不可以?
#1
<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
#2
winform 调 JS ????
我要学习..
我要学习..
#3
可以的,你把这个js文件文件编译成DLL,然后在C#引用再直接调用方法就行了
#4
mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2) webBrowser1.Document.DomDocument;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;
win.execScript("temp('fdsafadsf)", "javascript");
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;
win.execScript("temp('fdsafadsf)", "javascript");
#5
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数组
#6
webbrower调用
IHTMLDocument2 doc = (IHTMLDocument2)WebShow.Document;
IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc.parentWindow;
win.execScript("A();", "javascript");
webBrowser1.Document.InvokeScript("A",
new String[] { "" });
IHTMLDocument2 doc = (IHTMLDocument2)WebShow.Document;
IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc.parentWindow;
win.execScript("A();", "javascript");
webBrowser1.Document.InvokeScript("A",
new String[] { "" });
#7
加一个webbrower控件,通过浏览器控件执行你的js函数
#8
晕大家都没看到他不要用【我不想再开webbrowser了】吗?
#9
真不知道你们的分是不是混来的
#10
a82344626,能解释下下面这句吗?
GoodInfo _coodInfo = new GoodInfo();
GoodInfo类是在本程序集定义的?对应JS中定义的对象吗?
GoodInfo _coodInfo = new GoodInfo();
GoodInfo类是在本程序集定义的?对应JS中定义的对象吗?
#11
构造里面实例化自己的写法还没见过。
我试下了,死循环了。
我试下了,死循环了。
#12
不好意思看错了,代码没有问题。
#13
#14
学习了,不过JS中返回自定义的函数类型不知道编译后会怎样
#15
lz问题解决了吗?我现在也遇到这个问题了。看了楼上的大侠们的回复,我还是没有思路。
#16
学习了
#17
我也没明白是可以还是不可以?