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 JavaScript and HTML forms will be embedded in he resources.resx file.
1) how can I load an HTML document out of the resource (analogous to a file:/// operation, but it isn't being loaded from the file system),
2) how would I declare the JavaScript scripts to be loaded? Ie,
<script src=resource.jquery.min.js??? ... />
Thanks!
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.
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);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.