How to load HTML/JavaScript from embedded resource into winform web browser

前端 未结 2 1895
暗喜
暗喜 2020-12-31 20:58

I want to have some HTML files with JavaScript loaded into the web browser control in a winforms (v2.0) application. During execution, I won\'t have internet access, so Java

相关标签:
2条回答
  • 2020-12-31 21:04

    To load the HTML document, just compile your html file as embedded resource, and then:

    WebBrowser browser = new WebBrowser();
    browser.DocumentText = Properties.Resources.<your_html_file>;
    

    If you really need to have external .js files, I think you will probably need to make them embedded resources. Then you can read these resources into a string of javascript.

    string GetResourceString(string scriptFile) 
    { 
        Assembly assembly = Assembly.GetExecutingAssembly(); 
        Stream str = assembly.GetManifestResourceStream(scriptFile); 
        StreamReader sr = new StreamReader(str, Encoding.ASCII);
        return sr.ReadToEnd();
    }
    

    (Adapted from a reply on this page)

    From here, look into IHTMLScriptElement. From what I understand, you may be able to use this javascript string and set it as the ITHMLScriptElement's text field. See this question

    Good luck.

    0 讨论(0)
  • 2020-12-31 21:11

    Here's the file structure.

    I had success by doing this:

    Set the properties of the html files in my solution like this:

    Build Action -> Content
    Copy to Output Directory -> Copy always
    

    Configure my webBrowser object properties like this:

    var myAssembly = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
    var path = myAssembly.Substring(0, myAssembly.Length - "MyLib.DLL".Length) + "WebViews/prototype/index.html";
    webBrowser.Url = new Uri(path);
    
    0 讨论(0)
提交回复
热议问题