如何在c#中的wpf webbrowser控件中注入js文件

时间:2015-08-07 12:01:36

标签: javascript c# jquery wpf xaml

您好我在我的xaml页面上使用WPF WebBrowser控件。 我的html包中有Html,Jquery,js和css文件。 我必须在所有jquery库的Web浏览器控件中加载html页面。 我怎么能注入这个文件? 我正在编写这样的代码:

page.xaml.cs

 void wb_Loaded(object sender, RoutedEventArgs e)
    {
        string htmlPath = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "keyboardWidget\\test.html");
        string html = File.ReadAllText(htmlPath.ToString());
        webBrowser.NavigateToString(html);

    }

这是page.xaml:

<WebBrowser x:Name="webBrowser"></WebBrowser>

我收到这样的错误。

enter image description here

嗨,任何人都可以建议注入js或jquery库的最佳方法是什么。 如果在wpf网页浏览器控制中不可能,那么我应该使用什么控件。

3 个答案:

答案 0 :(得分:1)

我怀疑问题可能不是WebBrowser控件找不到JS脚本,而是WPF WebBrowser控件与JSON存在兼容性问题。

尝试在您的页面中包含此脚本,看看它是否可以解决问题: JSON2

下载json2.js并将其包含在您网页的HTML中:

<script  type="text/javascript" src="json2.js"></script>

答案 1 :(得分:0)

我无法在WPF WebBrowser控件中使用js文件呈现html。

然后我使用了GeckoFx Control。

添加xulrunner,Geckofx-Winforms.dll和Geckofx-Core.dll 然后我添加了page.xaml

 <Grid x:Name="gecoBrowser" Height="150" Width="735">

page.xaml.cs:

 Gecko.Xpcom.Initialize(AppDomain.CurrentDomain.BaseDirectory + "xulrunner");
            Gecko.GeckoWebBrowser myBrowser = new Gecko.GeckoWebBrowser();
            WindowsFormsHost host = new WindowsFormsHost();
            host.Child = myBrowser;
            gecoBrowser.Children.Add(host);
            string htmlPath = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "keyboardWidget\\test.html");
            myBrowser.Navigate("file:///" + htmlPath);

答案 2 :(得分:0)

您好找到了这个问题的答案: 在wpf web浏览器控件中注入js文件。

首先你必须在html中更新你的IE 在html的头部:

 <meta http-equiv="x-ua-compatible" content="IE=9">

注入这个jquery库: -

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>

后者:

https://forum.jquery.com/topic/json-is-undefined-with-jquery-min-2-0-3-on-ie-11

IE 11模式注册表:

https://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version