繁体   English   中英

如何将 HTML/JavaScript 从嵌入式资源加载到 winform Web 浏览器中

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

我想将一些带有 JavaScript 的 HTML 文件加载到 winforms (v2.0) 应用程序中的 Web 浏览器控件中。 在执行期间,我将无法访问 Internet,因此 JavaScript 和 HTML 表单将嵌入到 resources.resx 文件中。

1) 如何从资源中加载 HTML 文档(类似于 file:/// 操作,但它不是从文件系统加载的),

2) 我将如何声明要加载的 JavaScript 脚本? IE,

<script src=resource.jquery.min.js??? ... />

谢谢!

要加载 HTML 文档,只需将您的 html 文件编译为嵌入式资源,然后:

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

如果您真的需要外部 .js 文件,我认为您可能需要将它们嵌入资源。 然后你可以将这些资源读入一串javascript。

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

(改编自本页的回复

从这里开始,查看 IHTMLScriptElement。 据我了解,您可以使用此 javascript 字符串并将其设置为 ITHMLScriptElement 的文本字段。 看到这个问题

祝你好运。

这是文件结构。

在此处输入图片说明

我通过这样做取得了成功:

在我的解决方案中设置 html 文件的属性,如下所示:

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

像这样配置我的 webBrowser 对象属性:

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM