私は当惑している問題を解決しようとしています。それは明らかなことかもしれませんが、何が間違っているのか本当にわかりません。
この方法でロードした WebBrowser を備えた winform があり、正常に動作します。
WebBrowser.DocumentText = someHtmlCode;
私の winform の Web ブラウザで、右クリックして 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 コードを取得する必要があります。
ありがとう!