Окно после клика в том же webbrowser-е

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

Окно после клика в том же webbrowser-е

Сообщение theal » 02.06.2009 (Вт) 13:53

Подскажите как после клика в webbrowser1 , страница которая должна открываться в новом окне открыть в том же Webbrowser1? У меня ксть код открыть в webbrowser2 он работает ..Но мне надо в том же открыть
Код: Выделить всё
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
   Set ppDisp = Me.WebBrowser2.object
 
End Sub


А вот так не работает:
Код: Выделить всё
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
   Set ppDisp = Me.WebBrowser1.object
 
End Sub

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Окно после клика в том же webbrowser-е

Сообщение alibek » 02.06.2009 (Вт) 13:56

А название аргумента Cancel шевеления в мозгу не вызывает?
Lasciate ogni speranza, voi ch'entrate.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Окно после клика в том же webbrowser-е

Сообщение theal » 02.06.2009 (Вт) 14:00

Всмысле?Что вы имеете ввиду?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Окно после клика в том же webbrowser-е

Сообщение alibek » 02.06.2009 (Вт) 14:15

В том смысле, что если немного подумать над смыслом слова Сancel, можно попробовать выполнить отмену действия (открытия в новом окне), из ppDisp получить адрес, который пытается открыться, и назначить его текущему webbrowser. Возможно это поможет.
Lasciate ogni speranza, voi ch'entrate.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Окно после клика в том же webbrowser-е

Сообщение theal » 02.06.2009 (Вт) 14:22

Можете в примере показать?Если не трудно :oops:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Окно после клика в том же webbrowser-е

Сообщение alibek » 02.06.2009 (Вт) 14:41

Попытайся все-таки сам.
От этого для тебя же пользы будет больше.
Lasciate ogni speranza, voi ch'entrate.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Окно после клика в том же webbrowser-е

Сообщение theal » 02.06.2009 (Вт) 19:15

Блин ни хрена не получается..Ну подскажите как открыть окно в том же webbrowsere??
Ну пожалуйста

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

Re: Окно после клика в том же webbrowser-е

Сообщение dr.MIG » 02.06.2009 (Вт) 21:02

Так уже сказали полностью весь алгоритм:
    1. Оставить строчку Set ppDisp = Me.WebBrowser1.object из твоего кода;
    2. Выполнить отмену действия, используя Cancel;
    3. Получить адрес ссылки, по которой осуществляется переход (подсказка: это свойство объекта WebBrowser — Document.activeElement.href);
    4. Перейти по полученому адресу (Navigate).
Salus populi suprema lex

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Окно после клика в том же webbrowser-е

Сообщение awl100Alex » 02.06.2009 (Вт) 22:13

Вот так все ссылки будут открываться в одной вкладке (окне, браузере и т.д.)...
Код: Выделить всё
'References --> Microsoft Internet Controls
Dim WithEvents IEWeb As WebBrowser

Private Sub Form_Load()
Set IEWeb = New InternetExplorer
IEWeb.Visible = True
IEWeb.Navigate "http://www.mail.ru"
End Sub

Private Sub IEWeb_NewWindow2(ppDisp As Object, Cancel As Boolean)
Cancel = True
IEWeb.Navigate IEWeb.Document.activeElement.href
End Sub

Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
IEWeb.Quit: Set IEWeb = Nothing
End Sub

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re: Окно после клика в том же webbrowser-е

Сообщение ala-x » 03.06.2009 (Ср) 2:08

awl100Alex писал(а):Вот так все ссылки будут открываться в одной вкладке (окне, браузере и т.д.)...
Код: Выделить всё
'References --> Microsoft Internet Controls
Dim WithEvents IEWeb As WebBrowser

Private Sub Form_Load()
Set IEWeb = New InternetExplorer
IEWeb.Visible = True
IEWeb.Navigate "http://www.mail.ru"
End Sub

Private Sub IEWeb_NewWindow2(ppDisp As Object, Cancel As Boolean)
Cancel = True
IEWeb.Navigate IEWeb.Document.activeElement.href
End Sub

Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
IEWeb.Quit: Set IEWeb = Nothing
End Sub

Cтранно--почему то ошибка на ieweb

Xcode
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 131
Зарегистрирован: 31.10.2008 (Пт) 8:12
Откуда: Pavlodar

Re: Окно после клика в том же webbrowser-е

Сообщение Xcode » 03.06.2009 (Ср) 4:54

ala-x писал(а):Cтранно--почему то ошибка на ieweb

ieframe.dll подключил?

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Окно после клика в том же webbrowser-е

Сообщение theal » 03.06.2009 (Ср) 10:44

Да всё включено и ieframe и html object library

Xcode
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 131
Зарегистрирован: 31.10.2008 (Пт) 8:12
Откуда: Pavlodar

Re: Окно после клика в том же webbrowser-е

Сообщение Xcode » 03.06.2009 (Ср) 11:58

Какую ошибку выдает, на что ругается? Для этого кода требуется лишь ieframe.dll.

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

Re: Окно после клика в том же webbrowser-е

Сообщение arvitaly » 03.06.2009 (Ср) 12:54

Вот так можно обрабатывать не только щелчок по ссылке

Код: Выделить всё
Private Sub Form_Load()
    WebBrowser2.Visible = False
    WebBrowser1.Navigate2 "http://yandex.ru/yandsearch?text=%D1%88%D0%B0%D1%88%D0%BB%D1%8B%D0%BA+%D0%BF%D0%B8%D0%B2%D0%BE+%D0%B4%D0%B5%D0%B2%D1%87%D0%BE%D0%BD%D0%BA%D0%B8&yasoft=barff&clid=39941"
End Sub

Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
    Set ppDisp = WebBrowser2.Object
End Sub

Private Sub WebBrowser2_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
    Cancel = True
     WebBrowser1.Navigate2 URL
End Sub

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Окно после клика в том же webbrowser-е

Сообщение theal » 04.06.2009 (Чт) 2:08

Да код показывает новое окно в webbrowser1.А как при этом раскладе передать кукиес в webbrowser1?Получается что новая страничка открывшаяся в webbrowser1 не имеет адреса родительской страницы(откуда по ней перешли).Это вроде получается типа того ,что адрес ссылки вписали вручную.Как сделать чтоб было всё как положено(переход определялся бы с первой открывшейся страницы) к примеру первый сайт был www.yandex.ru чтоб кликнутая ссылка так и определялась бы,что кликнули с яндекса)

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

Re: Окно после клика в том же webbrowser-е

Сообщение arvitaly » 04.06.2009 (Чт) 3:04

На
Код: Выделить всё
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim obj As Object
    For Each obj In WebBrowser1.Document.links
       obj.Target = "_self"
    Next
End Sub


и давай уже сам тоже думай че нить.

theal
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 148
Зарегистрирован: 03.05.2009 (Вс) 16:12

Re: Окно после клика в том же webbrowser-е

Сообщение theal » 04.06.2009 (Чт) 3:25

arvitaly писал(а):На
Код: Выделить всё
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim obj As Object
    For Each obj In WebBrowser1.Document.links
       obj.Target = "_self"
    Next
End Sub


и давай уже сам тоже думай че нить.



arvitaly ты ГЕНИЙ...СПАСИБО

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

Re: Окно после клика в том же webbrowser-е

Сообщение dr.MIG » 04.06.2009 (Чт) 12:15

theal, поиск по словам «webbrowser новок окно» давно знал это решение :).
Salus populi suprema lex


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

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

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

    TopList