我正在嘗試更改WebBrowser控件中隱藏字段上的值。WebBrowser控件更新隱藏字段
我可以注入顯示警告框的JavaScript。我可以讓警告框顯示隱藏字段的當前值。但是,我無法讓隱藏字段的價值發生變化。
我曾嘗試通過執行此改變的值(tb是web瀏覽器控件):
HtmlElement head = tb.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = tb.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "function DoIt() { document.getElementById('TestHiddenField').value='Hello World'; alert('Updated'); }";
head.AppendChild(scriptEl);
tb.Document.InvokeScript("DoIt");
在警報上述不彈出。
而且我已經試過這樣:
tb.Document.Body.InnerHtml = tb.Document.Body.InnerHtml.Replace("MyValue", "YourValue");
在上面我看到的innerHTML並調試時發生改變。
但是,當頁面完成加載並查看源代碼時,值永遠不會更改。
此外,即使我可以注入JavaScript,它彈出警報,我永遠無法找到JavaScript代碼int。
發生了什麼事?我究竟做錯了什麼?
謝謝!
更新:
我在DocumentCompleted事件這樣做。
- 我沒有使用ViewState的
另一個更新
:
我添加了另一個領域。這次是一個非隱藏的文本字段。
<input type="hidden" id="TestHiddenField" value="MyValue" name="TestHiddenField" />
<input type="text" id="TestField" value="MyValue" name="TestField" />
這裏是發生了什麼,當我這樣做:
tb.Document.Body.InnerHtml = tb.Document.Body.InnerHtml.Replace("MyValue", "YourValue");
當頁面呈現在WebBrowser控件的文本框中顯示文本「YourValue」但是當我查看源代碼的價值仍然等於「 myvalue的」。
這是怎麼回事?我需要它等於「YourValue」。
任何想法?
再次感謝!
我在DocumentCompleted事件中執行此操作。 – user390480
請參閱新的更新測試。 – user390480