在winform里怎么调用WebBrowser控件里的脚本
2010-01-16 02:34
381 查看
在winform里怎么调用WebBrowser控件里的脚本
这是在CSDN论坛上的一个问题,感觉也许对其他人也会有点用处,所以贴出来
JScript是建立在COM之上的,设置变量/调用函数是通过IDispatch来实现的。在.NET里,调用IDispatch里的方法是通过反射来实现的,即,通过System.Type.InvokeMember 。该方法调用 IDispatch::GetIDsOfNames 以及IDispatch::Invoke来调用COM Automation 对象里的方法和属性。参考Binding for Office automation servers with Visual C# .NET
假如有下列HTML:
在C#里,假设axWebBrowser1是你的WebBrowser控件对象,你已经装载了上述HTML,你可以这么做:
比较麻烦,对么?幸运的是,我们不用这么麻烦,因为IHTMLWindow2里有个现成方法,execScript,我们可以这么做:
本文转自:http://hi.baidu.com/psc2006hedan/blog/item/b3f72a7f2452210a28388ac5.html
这是在CSDN论坛上的一个问题,感觉也许对其他人也会有点用处,所以贴出来
JScript是建立在COM之上的,设置变量/调用函数是通过IDispatch来实现的。在.NET里,调用IDispatch里的方法是通过反射来实现的,即,通过System.Type.InvokeMember 。该方法调用 IDispatch::GetIDsOfNames 以及IDispatch::Invoke来调用COM Automation 对象里的方法和属性。参考Binding for Office automation servers with Visual C# .NET
假如有下列HTML:
<mce:script language="javascript"><!-- var var1 = 'yes'; function testx(obj) { alert(obj); alert(var1); } // --></mce:script> <input type=button value="click me" onclick="testx('hello');">
在C#里,假设axWebBrowser1是你的WebBrowser控件对象,你已经装载了上述HTML,你可以这么做:
mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)axWebBrowser1.Document; mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc.parentWindow; //读变量值 object o = win.GetType().InvokeMember ("var1", BindingFlags.GetProperty, null, win, new Object [] {}); //写变量值 win.GetType().InvokeMember ("var1", BindingFlags.SetProperty, null, win, new Object [] {"新的值"}); //调用方法 win.GetType().InvokeMember("testx",BindingFlags.InvokeMethod,null,win,new object[]{1});
比较麻烦,对么?幸运的是,我们不用这么麻烦,因为IHTMLWindow2里有个现成方法,execScript,我们可以这么做:
win.execScript("var1 = 'abc';","javascript"); win.execScript("testx(12)","javascript");
本文转自:http://hi.baidu.com/psc2006hedan/blog/item/b3f72a7f2452210a28388ac5.html
相关文章推荐
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本(转载)
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本 (转自思归呓语)
- 在winform里怎么调用WebBrowser控件里的脚本 (转自思归呓语)
- c# winform程序在WebBrowser控件中执行javascript脚本
- winform中WebBrowser控件执行脚本
- C#Winform中WebBrowser控件的特性和详细调用方法
- winform窗体中调用Webbrowser控件里的JS方法和
- 如何在多线程中调用winform窗体控件
- 如何在多线程中调用winform窗体控件
- 在.net中利用webbrowser控件实现WinForm与WebForm交互
- FreeTextBox控件的脚本调用方法
- 为什么说WinForm的控件只能在主线程中创建和调用
- 如何使用WebBrowser控件执行页面的JavaScript脚本,WebBrowser执行JavaScript脚本
- VB.NET让webbrowser控件中JS脚本错误最新方法(2013-09-16)