Как получить текст Фрейма?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Как получить текст Фрейма?

Сообщение Dimen » 16.07.2009 (Чт) 6:46

'<HTML><HEAD><TITLE>IP.ru </TITLE><NOSCRIPT>
'<META HTTP-EQUIV="REFRESH" CONTENT="1;URL=nojs.html">
'</NOSCRIPT></HEAD><FRAMESET border=0 frameSpacing=0 rows=50,*,50 frameBorder=0>
'<FRAME name=head src="shtop.php" noResize>
'<FRAME name=site src="" noResize>
'<FRAME name=number src="" noResize align="center">
'</FRAMESET></HTML>

Вот код страницы мне нужно получить html код ну или текст фрейма "site".

Подскажите как это сделать?
Пробовал так:
Код: Выделить всё
Text1.Text = WebBrowser1.Document.GetElementById("site").innerText
не выходит.
Íå óïóñêàéòå øàíñ!

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Как получить текст Фрейма?

Сообщение dr.MIG » 16.07.2009 (Чт) 11:02

Фрейм ни что иное как отдельная страница, отображаемая внутри другой страницы. Отсюда и решение. В том примере производится щелчок по кнопке внутри фрейма, но смысл, думаю, будет понятен.
Salus populi suprema lex

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как получить текст Фрейма?

Сообщение Dimen » 16.07.2009 (Чт) 11:40

Ну что такое фрейм я понимаю. Пример вроде понятный, но се равно не могу получить текст страницы во втором фреме. Мне нужно сделать при появлени определенного текста на странице в определенном фрейме выполнение определенного кода.
Íå óïóñêàéòå øàíñ!

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Как получить текст Фрейма?

Сообщение dr.MIG » 16.07.2009 (Чт) 13:22

Начнем с того — ты умеешь получать текст некой произвольной html-страницы, расположенной по адресу http://site.com/somepage.html?
Salus populi suprema lex

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как получить текст Фрейма?

Сообщение Dimen » 16.07.2009 (Чт) 13:28

Получаем:
Код: Выделить всё
Private Sub Command1_Click()
Do While WebBrowser1.Busy '
DoEvents
Loop
Text1.Text = WebBrowser1.Document.documentElement.innerHTML
End Sub


Private Sub Form_Load()
WebBrowser1.Silent = True
WebBrowser1.Navigate "http://site.com/somepage.html"
End Sub
Íå óïóñêàéòå øàíñ!

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Как получить текст Фрейма?

Сообщение dr.MIG » 16.07.2009 (Чт) 13:53

Ну вот, осталось получить путь к файлу, который грузится во фрейм — WebBrowser1.LocationURL & WebBrowser1.Document.getElementsByName("site")(0).getAttribute("src") и получить текст из файла по этому адресу.
Последний раз редактировалось dr.MIG 16.07.2009 (Чт) 14:38, всего редактировалось 1 раз.
Salus populi suprema lex

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как получить текст Фрейма?

Сообщение Dimen » 16.07.2009 (Чт) 14:12

Неполучается что то пишет "Объект не поддерживает этот метод или свойство"
Делал так
Код: Выделить всё
Private Sub Command3_Click()
Text1.Text = WebBrowser1.Document.getElementByName("site").getAttribute("src")

End Sub
Íå óïóñêàéòå øàíñ!

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как получить текст Фрейма?

Сообщение Dimen » 16.07.2009 (Чт) 14:36

На сколько я понял мне можно сделать даже проще просто проверять если во втором фрейме загружена blank.php то выполнятьпоследущий код. Проверил через оперу когда на старанице появляется сообщение(нужное мне) то тогда загружена страница blank.php.
Íå óïóñêàéòå øàíñ!

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Как получить текст Фрейма?

Сообщение dr.MIG » 16.07.2009 (Чт) 14:37

У меня опечатка, надо getElementsByName, Name может быть одинаковым у нескольких объектов на странице, в отличие от Id. Исправил в своем предыдущем посте.
Salus populi suprema lex

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как получить текст Фрейма?

Сообщение Dimen » 16.07.2009 (Чт) 17:28

Спасибо сработало. А ка получить текст из файла по этому адресу? Видимо я что то неправильно делаю так как я получил тот же код страницы со фреймом:

'<HTML><HEAD><TITLE></TITLE><NOSCRIPT>
'<META HTTP-EQUIV="REFRESH" CONTENT="1;URL=nojs.html">
'</NOSCRIPT></HEAD><FRAMESET border=0 frameSpacing=0 rows=50,*,50 frameBorder=0>
'<FRAME name=head src="shtop.php" noResize>
'<FRAME name=site src="" noResize>
'<FRAME name=number src="" noResize align="center">
'</FRAMESET></HTML>
Íå óïóñêàéòå øàíñ!

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Как получить текст Фрейма?

Сообщение dr.MIG » 17.07.2009 (Пт) 15:08

Вобщем я как-то смутно все понял. Какова вообще цель — получить текст из фрейма или отобразить фрейм в WebBrowser отдельно от той страницы в которую он встроен?

Если только получить текст, то причем тогда вообще WebBrowser? Вот набросал пример, который получает текст из фрейма с именем menu и отображает его в TextBox.
Код: Выделить всё
Private Sub Form_Load()
Dim http_req As New WinHttpRequest, text As String, src As String
    http_req.Open "GET", "http://www.yma.ac.ru/books/hist/ru/hem/hem1.htm"
    http_req.Send

    If http_req.Status = 200 Then
        text = http_req.ResponseText
        Dim HTMLDocument
        Set HTMLDocument = CreateObject("HTMLFile")
        HTMLDocument.Clear
        HTMLDocument.Open
        HTMLDocument.write text
        src = HTMLDocument.getElementsByName("menu")(0).getAttribute("src")
    End If
   
    http_req.Abort
   
    http_req.Open "GET", "http://www.yma.ac.ru/books/hist/ru/hem/" & src
    http_req.Send
       
    If http_req.Status = 200 Then
        Text1.text = http_req.ResponseText
    End If
End Sub


P.S. подключить References: Microsoft WinHTTP Services, Microsoft HTMLObject Library.
Salus populi suprema lex

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как получить текст Фрейма?

Сообщение Dimen » 17.07.2009 (Пт) 17:52

А цель такова написать программу которая заходит в мой акуант там идет по определенной ссылке после чего появляется страница с фреймами и вот оттуда мне нужно выдрать информацию и если информация на странице устраивает меня то делать следущие действия.
Íå óïóñêàéòå øàíñ!

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как получить текст Фрейма?

Сообщение Dimen » 18.07.2009 (Сб) 10:56

А что по средством компонента WebBrowser это ни как не сделать? мне нужно именно видеть эту страницу то есть чтоб у меня была возможность просматривать.
Íå óïóñêàéòå øàíñ!

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как получить текст Фрейма?

Сообщение Dimen » 20.07.2009 (Пн) 11:48

Ну что ни кто не встречался с таким? На форуме же много эрудированных людей, помогите буду очень благодарен. Надо отследить появление во фрейме определенной страницы.
Íå óïóñêàéòå øàíñ!

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Как получить текст Фрейма?

Сообщение arvitaly » 20.07.2009 (Пн) 12:23

viewtopic.php?f=1&t=40288#p6727026

вот здесь тебе уже все ответили, разбирайся, а не флуди

Dimen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 82
Зарегистрирован: 25.05.2009 (Пн) 15:10

Re: Как получить текст Фрейма?

Сообщение Dimen » 20.07.2009 (Пн) 14:02

arvitaly писал(а):http://bbs.vbstreets.ru/viewtopic.php?f=1&t=40288#p6727026

вот здесь тебе уже все ответили, разбирайся, а не флуди


Вот это видел?:


Dimen писал(а):А что по средством компонента WebBrowser это ни как не сделать? мне нужно именно видеть эту страницу то есть чтоб у меня была возможность просматривать.


Мне нужно по средством компонента WebBrowser другой метод тут не подходит, а разбиратся с предложенным выше кодом не надо он рабочий и понятный мне же надо другое. Да и я думаю если ты с этим сталкивался или бы знал как это реализовать ты бы уже отвтил или дал пример (исхожу из твоих ответов в других постах, и они я вляются довольно таки содержательными и полезными)
Íå óïóñêàéòå øàíñ!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как получить текст Фрейма?

Сообщение Хакер » 20.07.2009 (Пн) 14:16

—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Как получить текст Фрейма?

Сообщение dr.MIG » 20.07.2009 (Пн) 14:25

Однако, если в моем коде заменить
Код: Выделить всё
    http_req.Open "GET", "http://www.yma.ac.ru/books/hist/ru/hem/" & src
    http_req.Send
       
    If http_req.Status = 200 Then
        Text1.text = http_req.ResponseText
    End If


на WebBrwser1.Navigate "http://www.yma.ac.ru/books/hist/ru/hem/" & src, то в WebBrowser как раз и загрузится содержимое фрейма в моем случае с именем menu.
Salus populi suprema lex


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 16

    TopList  
cron