Тема: VBScript: InternetExplorer.Application, работа с фреймами
Пример демонстрирует возможность получения HTML кода фреймов загруженной страницы.
Dim InternetExplorer
'/// Создаём экземпляр нового класса
Set InternetExplorer = New InternetExplorerClass
'/// Делаем IE видимым
InternetExplorer.Application.Visible = True
InternetExplorer.Application.Navigate "http://www.myshkin.ru/frameset.htm"
'// Описываем события
Sub InternetExplorer_DocumentComplete(pDisp, URL)
'/// Т.к в это событие сваливается загрузка каждого HTMLWindow, то ждём пока не загрузиться наше главное окно
if InternetExplorer.Application.LocationURL <> URL Then Exit Sub
'/// Получаем ссылку на сам документ
Set Document = pDisp.Document
'/// Получаем объект родительского окна
Set Window = Document.parentWindow
'/// Подсчитываем колличество фреймов
Dim FramesCount
FramesCount = Window.Frames.length
'/// Если фрейм один или их несколько
If FramesCount > 0 Then
MsgBox "В странице найдено " & FramesCount & " фреймов",vbInformation
'/// Перебираем фреймы по ID
For FrameID = 0 to Window.Frames.Length-1
'/// Получаем фрейм как объект
Set Frame = Window.Frames(FrameID)
'/// Возвращаем содержимое его документа в сообщение
MsgBox Frame.Document.body.outerhtml,vbInformation,"Содержимое фрейма " & FrameID
Next
Else
'/// Если фреймов нет
MsgBox "В странице не найдено фреймов",vbExclamation
End if
End Sub
Sub InternetExplorer_OnQuit()
MsgBox "Вы закрыли Internet Explorer",vbInformation,"Internet Explorer"
Wscript.Quit
End Sub
'/// Класс модуль InternetExplorer
Class InternetExplorerClass
Public Application
Private Sub Class_Initialize
'/// Вся идея в создании объекта через WScript. Вторым параметром указывается префикс функций-обработчиков событий
Set Application = WScript.CreateObject("InternetExplorer.Application", "InternetExplorer_")
End Sub
Sub Class_Terminate
'/// Для того, чтобы WScript не завершил выполнение сценария при попытке уничтожить модуль,
'/// делаем цикл, который завершается, если объект IE перестал существовать.
Do
WScript.Sleep 10
Loop Until Application = ""
End Sub
End Class
Автор примера - Xameleon.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.