‘壹’ WPF中使用Winform中的WebBrowser控件,背景透明时,WebBrowser消失
你要是不想要wpf的背景可以直接把webbrowser填充到念圆wpf的窗口中,然后把窗口睁启边悉高如框去掉就行了
因为winform的控件显示是和parent有关联的,只要parent透明,子控件就不会显示了。
‘贰’ 在silverlight中使用了 WebBrowse,用来显示html。当我把silverlight嵌入ie时,WebBrowse控件失效了,咋办
失效?什么意思?我觉得不太可能,看看是不是老者判自己程序的问题。
或者你可以把Silverlight配置成OOB模式侍改,也就是Out Of Browser模式,脱离浏览器运行试试,
具体配置方法参嫌宏考下面:
‘叁’ VB怎么取Webbrowse控件的hwnd属性
Option Explicit
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private WebHwnd As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
If Timer1.Enabled = False Then
Dim h As Long, S As String
h = GetWindow(Me.hwnd, GW_CHILD)
While h <> 0
S = String(256, vbNullChar)
GetClassName h, S, 256
S = Left(S, InStr(S, vbNullChar) - 1)
If S = "Shell Embedding" Then
WebHwnd = GetWindow(GetWindow(h, GW_CHILD), GW_CHILD)
End If
h = GetWindow(h, GW_HWNDNEXT)
Wend
Timer1.Enabled = True
Command1.Caption = "暂停"
Else
Command1.Caption = "开始"
Timer1.Enabled = False
End If
End Sub
Private Sub Command2_Click()
PostMessage WebHwnd, WM_LBUTTONDOWN, 0, MakeLparam(100, 245)
Sleep 10
PostMessage WebHwnd, WM_LBUTTONUP, 0, MakeLparam(100, 245)
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 10
Me.Show
WebBrowser1.Navigate "你的网址"
Command1.Caption = "开始"
Command2.Caption = "点击"
End Sub
Private Sub Timer1_Timer()
PostMessage WebHwnd, WM_MOUSEMOVE, 0, MakeLparam(100, 245)
End Sub
Private Function MakeLparam(ByVal x As Integer, ByVal y As Integer) As Long
Dim h As String
Dim l As String
l = Hex(x)
h = Hex(y)
l = String(4 - Len(l), "0") & l
h = String(4 - Len(h), "0") & h
MakeLparam = CDec("&h" & h & l)
End Function
‘肆’ C#中 webbrowser 控件提交表单后怎么在原位置打开新的网页
那你得先看网页是怎么处理submit的,一般有两种思路,A,开新窗口webbrowse会触发NewWindow事件,你只念誉要在这事件的处理代码中加入
e.Cancel=true;
string
url
=
this.wB_MainBrowser.Document.ActiveElement.GetAttribute("href");
this.wB_MainBrowser.Url
=
new
Uri(url);
或者可以用仔兄段个递归把链接的target属性修改为_self.
下尘散面代码可能对你有用
foreach
(HtmlElement
form
in
this.webBrowser1.Document.Forms)
{
form.SetAttribute("target",
"_self");
}
‘伍’ 怎么优化VB中使用webBrowse控件
米什么办法。控件老了点。
‘陆’ VB窗体上使用了一个WebBrowser控件,每次页面加载完毕后总是弹出窗口
你可信毁以在WebBrowser1_NewWindow2的事件中把Cancel=True这样就会弹出Window了,不过要注意的是加一兄扮个IF语句不然你就无法再想弹出新的窗口。这个对一些网页刚进入有弹出广告很有羡坦灶效,但是个别的网站做了处理那就不是很有效。
‘柒’ C# webBrowse控件,我现在希望点击加载好的网页中的连接,不打开新的连接
使用这个控件你会遇到一些麻烦,因为他是以IE6作为内悄判核,并不支持HTML5和CSS3,传说中得WebkitBrowser也是虚有其名,真用起来你就发现和前者无区启祥改别,他是在推销他得WebKit模块,十分恼怒。
在普通网页中你可以实现加载网页,语法很简单:
webBrowser1.Navigate(
);
这一步就满足你的要求宴圆。他还能模拟点击啊,例如我要模拟点击submit对象:
webBrowser1.Document.Forms[0].InvokeMember("submit");
WEBKITBROWSER也可以寻找元素:
webBrowser1.Document.GetElementsByTagName("div1")
就是这么控制的。
‘捌’ 用VB webbrowse控件浏览网页,如何取得网页上 的数据
使用WebBrowser控件进行DOM分析网页比较方便.
此外也可以用正则表达式以的方法分析字符
方法:
1.使用WebBrowser控件浏览
2.从WebBrowser获得document进行DOM处理.
(WebBrowse的document也可以直接进行DOM处理,只是功能少点)
代码示例:
WebBrowser1.Silent = True
WebBrowser1.Navigate "网页的网址"
Do Until WebBrowser1.ReadyState = 4 '等待加载完毕
DoEvents
Loop
'以下的语句需要引用mshtml 才能使用
dim doc as HTMLDocument '也可顷尺以使用iHTMLDocument2 ,功能略有不同
set doc=WebBrowser1.document '获得雀迅高document
'获得document后,就可以使用以下这些方法来取出网页中的对象
dim obj
set obj = doc.getElementByID("id号") '返回的是对象
set obj = doc.getElementByTagName("div") '返回的是对象集合
set obj = doc.links() '返回的是对象集合
还有.images .body 等很多方法
'再取出对象的内容
dim result as string
result = obj.value '例如文本框的数值
result = obj.innerText '例如链接文件
result = obj.outerHTML '对象的html代码
还有name class innerHTML 等很多属性
注意:页面如有script,iframe,object等,WebBrowser会弹出对话框,
建议不要用WebBrowser控件浏览,而是先下载代码,处理后昌碰再放到WebBrowser控件
‘玖’ 请教一个VB问题,网页控件webbrowser,后面的那个子对象Document.All,比如这个ALL,它的属性,方法,
WebBrowser的8个方法、13个属性和事件
方法 说明 ===========================================
GoBack 相当于IE的“后退”按钮,使你在当前历史列表中后退一项
GoForward 相当于IE的“前进”按钮,使你在当前历史列表中前进一项
GoHome 相当于IE的“主页”按钮,连接用户默认的主页
GoSearch 相当于IE的“搜索”按钮,连接用户默认的搜索页面
Navigate 连接到指定的URL
Refresh 刷新当前页面
Refresh2 同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,
该表定义在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL 执行简单的刷新,不将HTTP pragma: no-cache头发送给服务器
REFRESH_IFEXPIRED 只有在网页过期后才进行简单的刷新
REFRESH_CONTINUE 仅作内部使用。在MSDN里写着DO NOT USE! 请勿使用
REFRESH_COMPLETELY 将包含pragma: no-cache头的请求发送到服务器
Stop 相当于IE的“停止”按钮,停止当前页面及其内容的载入
属性 说明 ===========================================================
Application 如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser
控件的自动化对象
Parent 返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口
Container 返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同
Document 为活动的文档返回自动化对象。如果HTML当前正被显示在WebBrowser中,则
Document属性提供对DHTML Object Model的访问途径
TopLevelContainer 返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true
Type 返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返
回Microsoft Word Document
Left 返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离
Top 返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离
Width 返回或设置WebBrowser窗口的宽度,以像素为单位
Height 返回或设置WebBrowser窗口的高度,以像素为单位
LocationName 返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源
是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称
LocationURL 返回WebBrowser当前正在显示的资源的URL
Busy 返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true
就可以使用stop方法来撤销正在执行的访问操作
事件===========================================
BeforeNavigate2 导航发生前激发,刷新时不激发
CommandStateChange 当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward
菜单项或按钮
DocumentComplete 当整个文档完成是激发,刷新页面不激发
DownloadBegin 当某项下载操作已经开始后激发,刷新也可激发此事件
DownloadComplete 当某项下载操作已经完成后激发,刷新也可激发此事件
NavigateComplete2 导航完成后激发,刷新时不激发
NewWindow2 在创建新窗口以前激发
OnFullScreen 当FullScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输
入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)
OnMenuBar 改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。
VARIANT_TRUE是可见,VARIANT_ FALSE是隐藏
OnQuit 无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发
OnStatusBar 与OnMenuBar调用方法相同,标示状态栏是否可见。
OnToolBar 调用方法同上,标示工具栏是否可见。
OnVisible 控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数
StatusTextChange 如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏
TitleChange Title有效或改变时激发
重大或有趣的对象属性:
WebBrowser.OleObject.Document
WebBrowser.OleObject.Document.All
WebBrowser.OleObject.Document.bgColor
WebBrowser.OleObject.Document.Body.Style.overflowX
WebBrowser.OleObject.Document.Body.Style.overflowY
WebBrowser.OleObject.Document.Body.Style.zoom
WebBrowser.OleObject.Document.cookie
WebBrowser.OleObject.Document.documentElement.innerHTML
WebBrowser.OleObject.Document.documentElement.innerText
WebBrowser.OleObject.Document.FileSize
WebBrowser.OleObject.Document.Frames
WebBrowser.OleObject.Document.Images
WebBrowser.OleObject.Document.LastModified
WebBrowser.OleObject.Document.Links
WebBrowser.OleObject.Document.Location.Protocol
WebBrowser.OleObject.Document.ParentWindow
WebBrowser.OleObject.Document.ParentWindow.ScrollBy (九:整数; iY :整数)
WebBrowser.OleObject.Document.selection
WebBrowser.OleObject.Document.Title
WebBrowser.OleObject.Document.URL
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document
提供有关文件显示。详情见http://msdn.microsoft.com/workshop/a...j_document.asp 。
文件相当于:
WebBrowser.Document作为IHTMLDocument2
注:
如果没有文件已加载然后( WebBrowser.Document作为IHTMLDocument2 )将为零。为了避免运行时例外检查的价值,才能使用它,例如:
变种
文件: IHTMLDocument2 ;
开始
文件: = WebBrowser.Document作为IHTMLDocument2 ;
如果转让(文件) ,然后
。
。
简洁,并不是所有的例子包括:本网页上的这一错误检查。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.All
阵列的所有项目/物体在文件中。这包括图片,链接,文字等
。长度返回一些内容数组。
。项目( 0 )传回的第一份文件内容。
。项目( n )段。 InnerText读/写之间的文字开始和结束标记的项目。
。项目( n )段。 ScrollIntoView ( bAlignToTop :布尔)卷轴项目'东经'到的观点。 bAlignToTop =真正保持一致的窗口顶部的。 bAlignToTop =假以配合窗口底部的。
文件相当于:
变种
文件: IHTMLDocument2 ;
docAll : IHTMLElementCollection ;
开始
文件: = WebBrowser.Document作为IHTMLDocument2 ;
如果转让(文件)
docAll : = document.all ;
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.bgColor
设置或检索背景颜色的文件。例如,设置背景颜色为白色:
WebBrowse.OleObject.Document.bgColor : = ' # FFFFFF ' ;
或将其设置为黑色:
WebBrowse.OleObject.Document.bgColor : = ' # 000000 ' ;
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.Body.Style.overflowX
读/写字符串值,指明是否水平滚动条显示。价值观是:
可见默认。没有滚动条。显示被截断,以明显的地区。
滚动滚动条始终可见-无论需要与否。
隐藏没有滚动条。内容以外的可见光区是隐藏的。
汽车的内容被截断和滚动条显示如果需要的话。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.Body.Style.overflowY
至于WebBrowser.OleObject.Document.Body.Style.overflowX但垂直滚动条。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.Body.Style.zoom
设置或检索放大使用。默认值是1 ,没有放大。要显示在正常大小的一半使用0.5 。为了显示其在正常大小的两倍使用2 。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.cookie
返回一个字符串的所有浏览器的Cookies举行-这是本地存储的Cookie ,而不是服务器端的cookie 。
文件相当于:
变种
文件: IHTMLDocument2 ;
饼干:字符串;
开始
文件: = WebBrowser.Document作为IHTMLDocument2 ;
如果转让(文件) ,然后
饼干: = document.cookie ;
Cookies是代表字符串的形式:
名称=值
注:
如果有多个名称/值配对然后这些都是分开分号(';').
某些字符可能是'逃跑' -这是由一个百分比符号之后,两个位数的十六进制数的ASCII码代表的性质。名单的ASCII码请点击这里。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.documentElement.innerHTML
对于HTML文件,返回文件包括HTML格式。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.documentElement.innerText
返回文本文件的内容-在没有任何( HTML )的格式。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.FileSize
回报率的大小, HTML文件中的字节。
文件相当于:
( WebBrowser.Document作为IHTMLDocument2 ) 。档案大小
请注意,该文件相当于返回文件大小作为一个字符串,它会抛出一个异常如果没有页面加载。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.Frames
阵列框架的文件中。
。长度返回若干帧的文件中。
。项目( 0 )传回的第一帧。
。项目( 0 ) 。文件返回文档对象代表帧。
。项目( 0 ) 。 Document.URL返回的URL的第一帧。
文件相当于:
( WebBrowser.Document作为IHTMLDocument2 ) 。框架
例如,要获取有关帧作为( 1 IHTMLWindow2或IHTMLDocument2 ) :
变种
文件: IHTMLDocument2 ;
ole_index : OleVariant ;
doc_all : IHTMLElementCollection ;
frame_dispatch : IDispatch ;
frame_win : IHTMLWindow2 ;
frame_doc : IHTMLDocument2 ;
开始
文件: = WebBrowser.Document作为IHTMLDocument2 ;
ole_index : = 0 ;
frame_dispatch : = document.Frames.Item ( ole_index ) ;
如果frame_dispatch “ ”零然后
开始
frame_win : = frame_dispatch作为IHTMLWindow2 ;
frame_doc : = frame_win.document ;
。
。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.Images
阵列的图像载于本文件。
。长度传回的图像文件中。
。项目( 0 )传回的图片。
。项目( 0 ) 。 Src的读取或写入的路径,第一形象。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.LastModified
退货时,文件的最后修改,作为一个字符串。正式的格式是“月/日/年时时:分分:党卫军” ,但在我的经验,通常是“月/日/年时时:分分:党卫军” 。
文件相当于:
变种
htmlDoc : IHTMLDocument2 ;
dateString :字符串;
开始
htmlDoc : = WebBrowser.Document作为IHTMLDocument2 ;
如果转让( htmlDoc )
dateString : = html_doc.LastModified ;
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.Links
阵列的各个环节(即“的<a href...> ”分子) 。
。长度返回的连结数目。
。项目( 0 )传回的第一个链接。
。项目( 0 ) 。 href返回地址的第一个链接。
。项目( 0 ) 。标记名的名称,返回类型的第一个环节。的链接,这是永远的A 。
文件相当于:
变种
htmlDoc : IHTMLDocument2 ;
allLinks : IHTMLElementCollection ;
firstLink : IHTMLElement ;
网址:字符串;
开始
htmlDoc : = WebBrowser.Document作为IHTMLDocument2 ;
allLinks : = htmlDoc.Links ;
firstLink : = allLinks.Item ( 0 , '' )作为IHTMLElement ;
网址: = firstLink.toString ;
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.Location.Protocol
返回一个字符串代表'协议'部分网址。这将(通常)是:
议定书价值意蕴
文件:本地或网络文件。
ftp:FTP 。
的Gopher : Gopher网络会议。
http:Hypertext传输协议
网址为: https :安全超文本传输协议。
的JavaScript : JavaScript代码。
地址:客户发送电子邮件。
新闻:新闻组。
水库:资源文件。
的Telnet :远程登录终端登录。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.ParentWindow
返回(只读)提到集装箱窗口。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.ParentWindow.ScrollBy (九:整数; iY :整数)
横向卷轴的窗口'的iX '像素-负值春联左边,一个积极的价值春联权利。垂直滚动窗口的' iY '像素-负值春联和一个积极的价值卷轴下来。
文件相当于:
变种
文件: IHTMLDocument2 ;
开始
文件: = webBrowser.Document作为IHTMLDocument2 ;
如果转让(文件) ,然后
document.parentWindow.scrollBy (九, iY ) ;
注:
该窗口不会滚动向上/向下,如果它已经达到了正常的顶部/底部限制。同样不会滚动左/右如果它已经达到了正常的左/右限制。因此,例如,当一个文件是第一次尝试加载滚动它-1 , -1不会有任何影响。
这将影响到框架文件,因为通常的顶层文件将不会滚动,即使将它包含帧。下面的过程说明了如何滚动每一份文件和框架,包括嵌入式框架:
程序ScrollBrowserWindowBy (常量窗口: IHTMLWindow2 ;九:整数; iY :整数) ;
变种
指数:整数;
oleIndex : OleVariant ;
frameDispatch : IDispatch ;
childWindow : IHTMLWindow2 ;
文件: IHTMLDocument2 ;
开始
如果转让(窗口) ,然后
尝试
window.scrollBy (九, iY ) ;
/ /如果有任何帧然后尝试滚动它们。
文件: = window.Document作为IHTMLDocument2 ;
如果转让(文件) ,然后
指数: = 1 document.Frames.Length做
开始
oleIndex : =指数- 1 ;
frameDispatch : = document.Frames.Item ( oleIndex ) ;
如果转让( frameDispatch ) ,然后
开始
childWindow : = frameDispatch作为IHTMLWindow2 ;
ScrollBrowserWindowBy ( childWindow ,九, iY ) ;
结束;
结束;
除
电子商务:异常年底开始做;
结束;
结束;
并调用它:
变种
文件: IHTMLDocument2 ;
开始
文件: = webBrowser.Document作为IHTMLDocument2 ;
如果转让(文件) ,然后
ScrollBrowserWindowBy ( document.parentWindow , 5,10 ) ;
如果您尝试呼叫' scrollBy '的窗框载场外页面就会抛出一个“拒绝访问”的例外,因此“尝试..除了”在上面的例子。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.selection
提供对当前选定的部分文件。
例如,如果要获得当前选定的文字:
变种
文件: IHTMLDocument2 ;
selectionObj : IHTMLSelectionObject ;
selectionRange : IHtmlTxtRange ;
selectedText :字符串;
开始
文件: = WebBrowser.Document作为IHTMLDocument2 ;
selectionObj : = document.selection ;
selectionRange : = selectionObj.CreateRange作为IHtmlTxtRange ;
selectedText : = selectionRange.text ;
。
。
注:上面的例子将需要修改的文件略微带有框架。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.Title
的标题当前文档。这是一样的财产LocationName 。
-------------------------------------------------- ------------------------------
WebBrowser.OleObject.Document.URL
网址目前的文件。这是一样的财产LocationURL 。