如何将本地脚本文件添加到WebBrowser控件的HTML中?

IAm*_*00B 11 html javascript c# webbrowser-control

这看起来真的很蠢.我尝试了一些不同的方法,但它只是不起作用.我有一个带WebBrowser控件的WinForms应用程序.如果我使用相同的src字符串在我的桌面上尝试使用原始html文件,我放在一起的src工作正常.但是将相同的东西插入WebBrowser控件将无法正常工作.

这是我的代码:

HtmlElementCollection head = this.wbPreview.Document.GetElementsByTagName( "head" );
if (head != null)
{
    HtmlElement elm = this.webBrowserControl.Document.CreateElement("script");
    string mySource = Environment.CurrentDirectory + @"\MyScriptFile.js";
    elm.SetAttribute("src", mySource);
    elm.SetAttribute("type", "text/javascript");
    ((HtmlElement)head[0]).AppendChild(elm);
}
Run Code Online (Sandbox Code Playgroud)

WebBrowser无法获取脚本.但是,如果我将"mySource"更改为外部资源(通过http://),它可以正常工作!

救命!

wom*_*omd 11

我找到了你的帖子,同时玩了以下为我工作的东西:

HtmlElementCollection head = webBrowser1.Document.GetElementsByTagName("head");
if (head != null)
{
    HtmlElement elm = webBrowser1.Document.CreateElement("script");
    elm.SetAttribute("type", "text/javascript");
    elm.InnerText = System.IO.File.ReadAllText(Environment.CurrentDirectory + @"\helperscripts.js");
    ((HtmlElement)head[0]).AppendChild(elm);
}
Run Code Online (Sandbox Code Playgroud)

,因此可以使用调用helperscript.js的所有方法

webBrowser1.Document.InvokeScript("methodname");
Run Code Online (Sandbox Code Playgroud)

,这里作为脚本调用的参考:如何在WebBrowser控件中注入Javascript?

问候