webbrowser如何访问框架页?

无·法 2010-08-26 09:26:10
举个例子,比如下面的网址http://www.symental.com/other/w.htm,我想给左边的百度的文本框赋值,可是怎么也赋不了,提示拒绝访问,该如何操作?

上面网页的页面代码为:
<FRAMESET border=0 frameSpacing=0 COLS="50%,*" frameBorder=0>
<FRAME name=topFrame src="http://www.baidu.com">
<FRAME name=topFrame src="http://www.google.com">
</FRAMESET>

上面的用WebBrowser1.Document.frames(0)就表示左边百度的框架页,百度的那个搜索框有个属性 name="wd",这样我们用下面的vb代码操作给它赋值:
Private Sub Command1_Click()
' MsgBox WebBrowser1.Document.frames.length'这行会显示2,表示有两个frame框架
' MsgBox WebBrowser1.Document.frames(0).Document.body.innerhtml'这行代码提示拒绝访问
WebBrowser1.Document.frames(0).Document.getElementsByName("wd")(0).Value = "测试"'赋值失败,提示拒绝访问
End Sub
...全文
875 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2010-11-23
  • 打赏
  • 举报
回复
                          
无·法 2010-11-23
  • 打赏
  • 举报
回复
                         
无·法 2010-08-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lfsfxy9 的回复:]

顶起,学习。


lz,该结贴楽
[/Quote]
公示下是为了让大家都学习下,另外贴个我找到的资料,跟楼主的很像,是从这个改过来的吧?呵呵
http://hi.baidu.com/cnoldjohn/blog/item/ff220ae7c1ac9d2bb8382036.html
我是一道光_ 2010-08-28
  • 打赏
  • 举报
回复
顶起,学习。


lz,该结贴楽
fisheep_works 2010-08-27
  • 打赏
  • 举报
回复
你参考下这个

' 为运行本程序,应在“菜单->工程->部件”中添加“Microsoft Internet Controls”
' 并在“菜单->工程->引用”中添加“Microsoft HTML Object Library”
Sub EnumFrames(ByVal wb As WebBrowser)
Dim pContainer As olelib.IOleContainer
Dim pEnumerator As olelib.IEnumUnknown
Dim pUnk As olelib.IUnknown
'Dim pBrowser As SHDocVw.IWebBrowser2
Dim pBrowser As SHDocVwCtl.WebBrowser_V1

Set pContainer = wb.Object.Document

' Get an enumerator for the frames
If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then

Set pContainer = Nothing

' Enumerate and refresh all the frames
Do While pEnumerator.Next(1, pUnk) = 0

On Error Resume Next

' Clear errors
Err.Clear

' Get the IWebBrowser2 interface
Set pBrowser = pUnk

If Err.Number = 0 Then
For i = 0 To pBrowser.Document.All.length - 1
If UCase(pBrowser.Document.All(i).tagName) = "A" Then
'List1.AddItem pBrowser.All(i).href
Debug.Print Now & pBrowser.Document.All(i).href
Debug.Print Now & pBrowser.Document.All(i).innterHTML
pBrowser.Document.All(i).Click
'Exit For
End If
Next
Debug.Print "Frame: " & pBrowser.LocationURL
End If

Loop

Set pEnumerator = Nothing

End If

End Sub
fisheep_works 2010-08-27
  • 打赏
  • 举报
回复
跨域访问了。。。
无·法 2010-08-27
  • 打赏
  • 举报
回复
上面的Edanmo's OLE interfaces & functions v1.4在有些机器可能没有,可以到这里下载:http://download.csdn.net/source/2652292
无·法 2010-08-27
  • 打赏
  • 举报
回复
谢谢楼上,搞定了,贴上完整代码:
' 为运行本程序,应在“菜单->工程->部件”中添加“Microsoft Internet Controls”
' 并在“菜单->工程->引用”中添加“Microsoft HTML Object Library”,添加“Edanmo's OLE interfaces & functions v1.4”
Private Sub Command1_Click()
Dim pContainer As olelib.IOleContainer
Dim pEnumerator As olelib.IEnumUnknown
Dim pUnk As olelib.IUnknown
Dim pBrowser As SHDocVwCtl.WebBrowser_V1

Set pContainer = WebBrowser1.Object.Document
If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
Set pContainer = Nothing
Do While pEnumerator.Next(1, pUnk) = 0
On Error Resume Next
Err.Clear
Set pBrowser = pUnk
If Err.Number = 0 Then
If pBrowser.LocationURL = "http://www.baidu.com/" Then
pBrowser.Document.getElementsByName("wd")(0).Value = "测试"
Exit Sub
End If
End If

Loop
Set pEnumerator = Nothing
End If
End Sub
无·法 2010-08-27
  • 打赏
  • 举报
回复
没人知道么?

7,766

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧