包括静态JS和CSS WebBrowser控件

时间:2014-12-26 21:06:07

标签: c# wpf webbrowser-control

我正在尝试在作为字符串加载到WPF WebBrowser控件的html页面中包含我的项目本地的js和css资源文件。

该项目为桌面应用程序构建一个dll。使用Visual Studio 2013和C#。

HTML加载了WebBrowser,但是我收到了与包含JS文件相关的错误。

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        string page = GetPage();
        if (page != null)
        {
            string resourcePath = System.IO.Path.GetFullPath("Resources/");

            //  Try setting an absolute path
            page = page.Replace("Resources/", resourcePath);
            this.webbrowser.NavigateToString(page);
        }
    }

嵌入在html字符串中的内容如下:

<head>
    <script language="JavaScript" src="Resources/myscript.js"></script> 
    <link rel="stylesheet" type="text/css" href="Resources/mystyle.css"> 
</head>

我收到一个错误弹出窗口:

An error has occurred in the script on this page.

URL:  aboutC:\MyDir\MyProject\bin\Debug\Resources/myscript.js

它预先设置了URL“约”。我可能还需要更改斜杠。 我尝试过很多东西。 “约会”总是先行。

还尝试使用IsolatedStorage,但这对我的项目不起作用: http://msdn.microsoft.com/library/windows/apps/ff431811(v=vs.105).aspx

1 个答案:

答案 0 :(得分:4)

调用NavigateToString时必须使用绝对URI。由于您不是,因此IE假定about:作为导致其失败的相对路径。

随机高端口上的use file:///C:\some\path.cssres://somedll.dll/path.csshost a HTTP server using WCF并使用http://localhost:37458/path.css