Я пытаюсь изменить значение в скрытом поле в элементе управления WebBrowser.
Я могу ввести Javascript, который отображает окно с предупреждением.Я могу заставить окно предупреждения показывать текущее значение скрытого поля.Однако я не могу изменить значение скрытого поля.
Я попытался изменить значение, выполнив это (tb - элемент управления WebBrowser):
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 в коде.
Что происходит?Что я делаю не так?
Спасибо!
ОБНОВЛЕНИЯ:
ДРУГОЕ ОБНОВЛЕНИЕ:
Я добавил еще одно поле.На этот раз не скрытое текстовое поле.
<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".
Есть идеи?
Еще раз спасибо!