如何使用.net webBrowser对象
本文关键字:对象 webBrowser net 何使用 | 更新日期: 2023-09-27 17:50:28
有人知道使用System.Windows.Forms.WebBrowser对象的教程吗?我四处找了一下,但没有找到。到目前为止,我的代码是(非常复杂的):
System.Windows.Forms.WebBrowser b = new System.Windows.Forms.WebBrowser();
b.Navigate("http://www.google.co.uk");
但它实际上没有导航到任何地方(即b.l l为空,b.p document为空等)
谢谢
浏览器导航到页面需要时间。在导航完成之前,Navigate()方法不会阻塞,否则会冻结用户界面。完成后将触发DocumentCompleted事件。您必须将代码移动到该事件的事件处理程序中。
一个额外的要求是,您创建WB的线程是单线程COM组件的幸福家园。它必须是STA和泵消息循环。控制台模式的应用程序不满足这个要求,只有Winforms或WPF项目有这样的线程。检查这个答案是否有与控制台模式程序兼容的解决方案。
这是一个非常简单的控件。使用以下代码
// Navigates to the URL in the address box when
// the ENTER key is pressed while the ToolStripTextBox has focus.
private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Navigate(toolStripTextBox1.Text);
}
}
// Navigates to the URL in the address box when
// the Go button is clicked.
private void goButton_Click(object sender, EventArgs e)
{
Navigate(toolStripTextBox1.Text);
}
// Navigates to the given URL if it is valid.
private void Navigate(String address)
{
if (String.IsNullOrEmpty(address)) return;
if (address.Equals("about:blank")) return;
if (!address.StartsWith("http://") &&
!address.StartsWith("https://"))
{
address = "http://" + address;
}
try
{
webBrowser1.Navigate(new Uri(address));
}
catch (System.UriFormatException)
{
return;
}
}
// Updates the URL in TextBoxAddress upon navigation.
private void webBrowser1_Navigated(object sender,
WebBrowserNavigatedEventArgs e)
{
toolStripTextBox1.Text = webBrowser1.Url.ToString();
}
你也可以使用这个例子
扩展Web浏览器
将一个浏览器控件放到一个表单中,并将其AllowNavigation设置为true。然后添加一个按钮控件,并在其click事件中写入webBrowser.Navigate("http://www.google.co.uk"),并等待页面加载。
对于一个快速示例,您也可以使用webBrowser.DocumentText = "<html><title>Test Page</title><body><h1> Test Page </h1></body></html>"
。这将显示示例页面。
试试这个简单的例子
声明:
using System.Windows.Forms;
用法:
WebBrowser b = new WebBrowser();
b.DocumentCompleted += ( sender, e ) => {
WebBrowser brw = ( WebBrowser )sender;
// brw.Document should not null here
// Do anythings with your Document
HtmlElement div = brw.Document.GetElementById( "my_div" );
head.InnerHtml = "Hello World";
//brw.Url should not null here
Console.WriteLine( brw.Url.AbsoluteUri );
// Invoke JS function
brw.Document.InvokeScript( "any_global_function", new object[] { "From C#" } );
};
b.Navigate("http://www.google.co.uk");
如果你只是试图打开浏览器和导航我做的很基本,每个人的答案都很复杂。我对c#非常陌生(1周),我刚刚写了这段代码:
string URL = "http://google.com";
object browser;
browser = System.Diagnostics.Process.Start("iexplore.exe", URL)
//This opens a new browser and navigates to the site of your URL variable