BUG: Document.Frames Collection Does Not Support For Each Syntax
ID: Q191184
|
The information in this article applies to:
-
Microsoft Internet Explorer (Programming) versions 4.0, 4.01, 4.01 SP1, 5.0
SYMPTOMS
When you try to enumerate through the Frames collection from Document
object using VBScript's "For Each" syntax, you get the following error
message:
Error: Object doesn't support this property or method
CAUSE
The Document.Frames collection does not support the functionality required
for the "For Each" syntax.
RESOLUTION
Use a regular FOR loop to enumerate through the Document.Frames collection.
For example, if you had the following code:
<SCRIPT LANGUAGE=VBSCRIPT>
Sub Window_OnLoad()
Dim f
For Each f In Document.Frames
MsgBox f.location.href
Next
End Sub
</SCRIPT>
You can change this code to use the regular for loop syntax as
follows:
<SCRIPT LANGUAGE=VBSCRIPT>
Sub Window_OnLoad()
Dim i
For i = 0 to document.frames.length - 1
MsgBox frames(i).location.href
Next
End Sub
</SCRIPT>
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article.
MORE INFORMATION
Steps to Reproduce Behavior
- Save the following HTML as Frames.htm in a folder
<HTML>
<HEAD>
<SCRIPT LANGUAGE=VBSCRIPT>
Sub Window_OnLoad()
Dim f
For Each f In Document.Frames
MsgBox f.location.href
Next
End Sub
</SCRIPT>
</HEAD>
<FRAMESET rows="50%,*">
<FRAME SRC="frame1.htm"></FRAME>
<FRAME SRC="frame2.htm"></FRAME>
</FRAMESET>
</HTML>
- Save the following HTML as Frame1.htm:
<HTML>
<HEAD>
</HEAD>
<BODY>
FRAME 1
</BODY>
</HTML>
- Save the following HTML as Frame2.htm:
<HTML>
<HEAD>
</HEAD>
<BODY>
FRAME 2
</BODY>
</HTML>
- Navigate to Frames.htm.
You will see the above mentioned error message.
Additional query words:
Keywords : kbhtml kbIE400bug kbIE401bug kbIEObj kbScript kbIE500bug
Version :
Platform :
Issue type : kbbug