我正在尝试解决一个让我感到不安的问题。这可能很明显,但我真的无法弄清楚出了什么问题。
我有一个带有 WebBrowser 的 winform,我以这种方式加载它,它工作正常:
WebBrowser.DocumentText = someHtmlCode;
在我的 winform 的网络浏览器中,我可以右键单击以获取 HTML 源代码并检查代码是否与我在 DocumentText 属性中设置的相同......此时一切正常。
因此,一旦我加载并运行它,我就会向其中注入一些 JavaScript 代码,如下所示:
HtmlElement head = WebBrowser.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = WebBrowser.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "function sayHello() { alert('hello') }";
head.AppendChild(scriptEl);
所以我添加了一个名为“sayHello”的新 JavaScript 函数,我可以这样调用它,它仍然可以正常工作:
WebBrowser.Document.InvokeScript("sayHello");
所以此时一切正常,我可以运行 JavaScript 函数并在 WebBrowser 中获取警报,但让我感到不安的是,当我右键单击 WebBrowser 以获取源代码时,我得到的代码与我在开始。没有任何关于后来添加的 JavaScript 代码的踪迹,尽管它在那里是因为当我调用它时它正在工作。
当然,如果我查看 WebBrowser.HtmlDocument,我也看不到 JavaScript,这与查看源代码相同。
所以我的问题是:新的 JavaScript 代码去哪儿了,我怎样才能把它找回来?我需要获取更新的 HTML 代码。
谢谢!