我想在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浏览器控件中。
要加载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);