在WebBrowser控件内的页面上运行javascript代码

时间:2012-02-03 01:03:02

标签: c# .net webbrowser-control

我有一个加载在WebBrowser控件中的网页,HTML类似于:

<input type='text' id='baa' name='baa' >

我想使用javacript代码更改baa输入HTML元素的值,我做到了:

webBrowser1.Navigate("javascript:document.getElementById('baa').value = 'baa'; void(0)");

但它在IE中不起作用。如何解决这个问题?提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果你想运行脚本,最好使用带有.NET和.NET WB控件的.execScript,或仅带有.NET WB控件的.InvokeScript - 使用这些是一个更好的主意。你可以使用VBScript和JavaScript(JScript)。

要更改值,假设您的WebBrowser控件名称为wbMain,则需要执行以下操作。这是在VB中,但在C#中执行它没有区别,除了语言语法,它易于阅读和以您想要的任何语言重用。

Dim hDoc as MSHTML.IHTMLDocument ' declare the html document object.

Set hDoc = wbMain.Document ' Get a reference to the WB controls document object.

hDoc.getElementById("baa").value = "baa"

事实上,您甚至不需要获取参考或执行上述任何操作,如果您愿意,可以直接在WB控件上使用它。

wbMain.Document.getElementById("baa").value = "baa"

如果您想将其更改为其他内容,例如“naa”,您只需执行此操作:

wbMain.Document.getElementById("baa").value = "naa"

请告诉我这是否对您有所帮助,或者您是否需要更多帮助。

干杯。