winform如何调用JS函数 看到有些软件,比如说迅雷,它获取网址的就是调用的是一个HTML页面,里面引用的是JS代码,我想请问一下C#winform如何调用JS函数。传入参数与输出结果。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用codedom和reflection可以实现,下面是从别人那里拷来的调用eval函数的例子,很有参考价值: public class Evaluator { /**/ /// /// 计算结果,如果表达式出错则抛出异常 /// /// 表达式,如"1+2+3+4" /// 结果 public static object Eval(string statement) { return _evaluatorType.InvokeMember( "Eval", BindingFlags.InvokeMethod, null, _evaluator, new object[] { statement } ); } /**/ /// /// /// static Evaluator() { //构造JScript的编译驱动代码 CodeDomProvider provider = CodeDomProvider.CreateProvider("JScript"); CompilerParameters parameters; parameters = new CompilerParameters(); parameters.GenerateInMemory = true; CompilerResults results; results = provider.CompileAssemblyFromSource(parameters, _jscriptSource); Assembly assembly = results.CompiledAssembly; _evaluatorType = assembly.GetType("Evaluator"); _evaluator = Activator.CreateInstance(_evaluatorType); } private static object _evaluator = null; private static Type _evaluatorType = null; /**/ /// /// JScript代码 /// private static readonly string _jscriptSource = @"class Evaluator { public function Eval(expr : String) : String { return eval(expr); } }"; } JS:<script type="text/javascript">function temp(obj){ document.all["Country"].innerText=obj;}</script>form:mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2) webBrowser1.Document.DomDocument;mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;win.execScript("temp('fdsafadsf)", "javascript");//调用函数temp [求救]如何从网页中与本地应用程序交互 请问除了Control类和其子类外,.net中还有哪个类有Invoke方法 webbrowser的一个问题,处理好久没有解决,40分求解 计算机软件著作权可加急最快三个工作日QQ1849691971 如何使用C#获取windows用户详细信息? 求一个正则表达式 OCS2007 二次开发问题 请问 .net reflector 的vs插件有什么用 不同form中的函数调用问题 新手求问各位大神这个借口规范用C#可以调用吗?怎么调用? wpf里怎样遍历所有控件 axWebBrower控件怎么读取页面控件状态
public class Evaluator
{
/**/
///
/// 计算结果,如果表达式出错则抛出异常
///
/// 表达式,如"1+2+3+4"
/// 结果
public static object Eval(string statement)
{
return _evaluatorType.InvokeMember(
"Eval",
BindingFlags.InvokeMethod,
null,
_evaluator,
new object[] { statement }
);
}
/**/
///
///
///
static Evaluator()
{
//构造JScript的编译驱动代码
CodeDomProvider provider = CodeDomProvider.CreateProvider("JScript");
CompilerParameters parameters;
parameters = new CompilerParameters();
parameters.GenerateInMemory = true;
CompilerResults results;
results = provider.CompileAssemblyFromSource(parameters, _jscriptSource);
Assembly assembly = results.CompiledAssembly;
_evaluatorType = assembly.GetType("Evaluator");
_evaluator = Activator.CreateInstance(_evaluatorType);
}
private static object _evaluator = null;
private static Type _evaluatorType = null;
/**/
///
/// JScript代码
///
private static readonly string _jscriptSource =
@"class Evaluator
{
public function Eval(expr : String) : String
{
return eval(expr);
}
}";
}
<script type="text/javascript">
function temp(obj)
{
document.all["Country"].innerText=obj;
}
</script>
form:
mshtml.IHTMLDocument2 currentDoc = (mshtml.IHTMLDocument2) webBrowser1.Document.DomDocument;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)currentDoc.parentWindow;
win.execScript("temp('fdsafadsf)", "javascript");//调用函数temp