我正在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");
    }
}

08-25 17:07