WinForm WebBrowser执行网页的中JavaScript函数

来源:互联网 发布:数字相册制作软件 编辑:程序博客网 时间:2024/05/02 02:43

 今天在测试将MapBar的在线地图放在C# WinForm中的WebBrowser中运行时。可以。

然后想到如果可以获取或设置或执行页面中的JavaScript函数岂不是很爽。

于是找了下还真有。
如下二个示例:
分别执行一个设置信息的函数。
this.webBrowser1.Document.InvokeScript("setMsg", new object[] { DateTime.Now.ToString() });

一个获取信息的函数。
object data = this.webBrowser1.Document.InvokeScript("getMsg");
this.Text = data.ToString();
这样就可以在WinForm中嵌入Web页面来执行一些协同的操作。很不错的模式。

ASPX页面源码如下:
<head runat="server">
<title>tttt</title>
<style type="text/css">
body
{
margin:0;
padding:0;
}
</style>
<script type="text/javascript" src="http://union.mapbar.com/apis/maps/free?f=mapi&v=31.2&k=keycode"></script>  
<script type="text/javascript">  
var maplet = null;  
function initMap(){  
maplet = new Maplet("mapbar");  
maplet.centerAndZoom(new MPoint(116.38672,39.90805), 8);  
maplet.addControl(new MStandardControl());  

}  
</script>  
<script type="text/javascript">
function setMsg(msg)
{
document.getElementById("tb01").value=msg;
}
function getMsg()
{
return document.getElementById("tb01").value;
}
</script>

</head>
<body >
<form id="form1" runat="server">
<div>
<asp:TextBox ID="tb01" runat="server" style="display:none;"></asp:TextBox>
</div>
<div id="mapbar" style="width:498px;height:298px"></div>
</form>
</body>
</html>

 在C#中用WebBrowser控件,执行网页中的JavaScript脚本
mshtml.IHTMLDocument2 document = (mshtml.IHTMLDocument2)axWebBrowser1.Document;

        mshtml.IHTMLSelectElement sd= (mshtml.IHTMLSelectElement)document.all.item("sd", null);
        bigarea.value = "43";

        mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)document.parentWindow;
        win.execScript("__doPostBack('ssss','')", "javascript");

原创粉丝点击