多层FRAMESET的情况下,怎么写操作最底层的FORM的元素的命令

zydscaline 2009-06-06 11:36:28
就是FRAMSET下还套FRAMESET还套FRAMSET,并且FRAMESET在上一个FRAMSET里的位置还有变化,有的前所有的FRAME前面,有的在FRAME集中间,怎么写类似webbrowser1.dlcument.all(i)的句子??

试了下:
WebBrowser1.Document.frames(0).frames(0).frames(0).Forms (0) .getElementById(myid).click
这句,运行时提示:
实时错误‘-2147352567(8002009)’
发生意外


大家指教下哈
...全文
147 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisypro1 2011-10-27
  • 打赏
  • 举报
回复
帮你顶一下
caline1 2009-06-10
  • 打赏
  • 举报
回复
换个马甲顶下
zydscaline 2009-06-08
  • 打赏
  • 举报
回复
还有在网上看到有人回复这个可以使用,我写上却提示不可:
Webbrowser1.document.getelementbyid("id").document.body.innertxt
zydscaline 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 supergreenbean 的回复:]
每个frame里面的页面完成装载时都会触发一次NavigateComplete,DocumentComplete等事件,你可以在DocumentComplete事件里根据传入的URL参数判断目前操作的是哪个frame,然后通过DOM对象操作里面的元素。
[/Quote]
URL参数?是不是网址栏里显示的?好象和你说的不一样哦
zydscaline 2009-06-07
  • 打赏
  • 举报
回复
DOM,好象很高深哦


郁闷,一点儿也不会DOM
supergreenbean 2009-06-07
  • 打赏
  • 举报
回复
每个frame里面的页面完成装载时都会触发一次NavigateComplete,DocumentComplete等事件,你可以在DocumentComplete事件里根据传入的URL参数判断目前操作的是哪个frame,然后通过DOM对象操作里面的元素。
needanothercoder 2009-06-07
  • 打赏
  • 举报
回复
我不会,帮你顶下
zydscaline 2009-06-07
  • 打赏
  • 举报
回复
那么这个代码怎么是正确的,怎么能用

rivate Sub Command2_Click()
Dim wbDoc As HTMLDocument
Dim blnClicked As Boolean, MyId as String
MyId = "A_ID_702"
frmDenied = 0
Set wbDoc = WebBrowser1.Document
If (Not wbDoc Is Nothing) And WebBrowser1.LocationURL <> "about:blank" Then
blnClicked = ClickTheId(wbDoc, MyId)
If blnClicked Then
MsgBox "The element was clicked.", , "Result"
Else
MsgBox "The element with the specified ID was not found." & _
IIf(frmDenied, "This could be caused by denied access." & _
vbCrLf & "Access to " & frmDenied & " frames was denied!", ""), vbExclamation, "Result"
End If
End If
End Sub

Function ClickTheId(TheDocument As HTMLDocument, TheId As String) As Boolean
Dim ElWithId As Object, oFrame As IHTMLWindow2, oDoc As HTMLDocument, i As Long, bClicked As Boolean
Set ElWithId = TheDocument.getElementById(TheId)
If Not ElWithId Is Nothing Then
On Error Resume Next
ElWithId.focus
On Error GoTo 0
ElWithId.Click
Set ElWithId = Nothing
ClickTheId = True
ElseIf TheDocument.frames.length > 0 Then
For i = 0 To TheDocument.frames.length - 1
Set oFrame = TheDocument.frames(i)
On Error Resume Next
Set oDoc = oFrame.Document
If Err.Number = 70 Then
frmDenied = frmDenied + 1
MsgBox "Error # " & Err.Number & ", " & Err.Description & vbCrLf & _
"Source: " & Err.Source, , "Error"
Else
bClicked = ClickTheId(oDoc, TheId)
If bClicked Then ClickTheId = True: Exit Function
End If
Next i
ClickTheId = False
Else
ClickTheId = False
End If
End Function
supergreenbean 2009-06-07
  • 打赏
  • 举报
回复
出于安全考虑,跨域的框架内容是禁止访问的。

DOM(Document Object Model)不是什么神奇玩意儿,它就是你正在用的东西
zydscaline 2009-06-07
  • 打赏
  • 举报
回复
四楼是我错了,写时多了个字母
For i = 0 To WebBrowser1.Document.frames.length - 1
Set objDoc = WebBrowser1.Document.frames(i)
For j = 0 To objDoc.All.length - 1
If objDoc.All(j).herf = "http://passport.csdn.net/UserLogin.aspx?from=http://community.csdn.net/" Then
objDoc.All(j).Click
End If
Next
Next

这个objdoc.all.length 怎么不被持???
zydscaline 2009-06-07
  • 打赏
  • 举报
回复
能过对本论坛的操作试验:(本论坛只有一个FRAMESET,下有二个FRAME)
WebBrowser1.Document.frames.length 这个可以查出FRAME有几个(现仅限于一层FRAMESET)

但是却不支持 WebBrowser1.Document.frames(i)

1,502

社区成员

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

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