c#中winform内嵌webbrowser控件基本使用

//WebBrowser控件禁用脚本错误
webBrowser1.ScriptErrorsSuppressed = true;

//使JavaScript可调用winform后台方法
webBrowser1.ObjectForScripting = this;

//JavaScript调用winform后台方法
var oLiveViews = window.exteral.GetViews();//GetViews()为后台方法

//加载网页
webBrowser1.Url = new Uri(“https://www.csdn.net/);

//网页加载完毕事件
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);

//根据标签id获取表单元素,但网页中存在iframe标签会获取不到元素
HtmlElement webBrowser1.Document.GetElementById("txtUserName");

//获取网页中所有iframe
HtmlWindowCollection winCollection = webBrowser1.Document.Window.Frames;

//遍历所有frame
foreach (HtmlWindow htmlWindow in winCollection)
{
	//根据标签id获取iframe中的表单元素
	HtmlElement clsbdmh6ele = htmlWindow.Document.GetElementById("clsbdmh6");
}

//获取某个元素下的所有子元素
HtmlElementCollection collection = webBrowser1.Document.GetElementById("menu").Children

//遍历所有HtmlElement
foreach (HtmlElement item in collection)
{
	if (item.FirstChild.InnerText == "车辆档案")
    {
    	////获取表单元素的某个属性
    	string rel = item.FirstChild.GetAttribute("rel");
        string rel1 = item.FirstChild.GetAttribute("rel1");
        string className = item.FirstChild.GetAttribute("cs-navi-tab");
        Object[] args = new string[2] { rel1, rel };
        //调用页面中的JavaScript
        webBrowser1.Document.InvokeScript("addTab", args);
        }
     }
}

//调用按钮点击事件
htmlWindow.Document.GetElementById("save").InvokeMember("Click");

//解决点击网页按钮后,网页还没加载完,导致后面代码获取不到表单元素问题的简(无)单(脑)办法
private void Delay(int Millisecond)
{
	DateTime current = DateTime.Now;
	while (current.AddMilliseconds(Millisecond) > DateTime.Now)
	{
		Application.DoEvents();
	}
	return;
}

//解决自动弹出IE浏览器问题
private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
	if (AppHelper.hbPlatformMaker == (int)AppHbPlatformMaker.zkyt)
	{
		e.Cancel = true;//取消弹窗
		string hbptUrl = AppHelper.hbPlatfromAddress;
		Log.Instance.Info("AppHelper.hbPlatfromAddress:" + hbptUrl);
		if (hbptUrl.LastIndexOf('/') == hbptUrl.Length - 1)
		{
			//webBrowser加载url
			hbptUrl = hbptUrl.Substring(0, hbptUrl.Length - 1) + "/index.jsp";
			Log.Instance.Info("TargetAddress:" + hbptUrl);
			webBrowser1.Navigate(hbptUrl);
		}
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章