如何从嵌入式资源中加载HTMLJavaScript到winform网络浏览器中?

问题描述 投票:6回答:2

我想在winforms(v2.0)应用程序中让一些带有JavaScript的HTML文件加载到web浏览器控件中。在执行过程中,我将无法访问互联网,所以JavaScript和HTML表单将被嵌入到他的resources.resx文件中。

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

2)我如何声明要加载的JavaScript脚本? 即

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

谢谢!我想在winforms(v2.0)应用程序中,让一些带有JavaScript的HTML文件加载到Web浏览器控件中。

c# javascript html webbrowser-control
2个回答
6
投票

要加载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的文本字段。请看 这个问题

好运。


0
投票

这是文件结构。

enter image description here

我通过这样做成功了。

在我的方案中设置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);
© www.soinside.com 2019 - 2024. All rights reserved.