我正在VS2012中编写一个包含Webbrowser控件的小应用程序。我想加载一个包含javascript的html文件。 webbrowser控件无法处理javascript默认设置。所以我一直在读书。
我有以下html文件:
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
var centerlatlng = new google.maps.LatLng(45.046006, -105.245867);
var myOptions = {
zoom: 13,
center: centerlatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
</script>
</head>
<body style="margin:0px; padding:0px;">
<div id="map_canvas" style="width: 100%; height: 100%;"></div>
</body>
</html>
位于我的C#项目(VS2012)的调试目录中的html文件。
我想加载此html文件并调用initialize函数。我一直在寻找关于如何执行此操作的清晰教程很长时间,但没有成功。据我所知,我尝试了以下方法。但是,没有达到预期的结果。
码:
maps_browser.DocumentText = File.ReadAllText("GPSmap.html");
maps_browser.Document.InvokeScript("initialize");
所以我的问题是:
如何将包含javascript的* .html文件加载到Web浏览器中?
如何从html文件调用javascript函数?
如何正确导航到html文件?
在此先感谢您的任何建议:)
最佳答案
看起来以下代码对我有用:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
maps_webbrowser.DocumentText = File.ReadAllText(@"GPSmap.html");
}
private void maps_webbrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
Debug.WriteLine(maps_webbrowser.DocumentText.ToString());
maps_webbrowser.Document.InvokeScript("initialize");
}
}