Пмогите разобраться с фреймами в WebBrowser

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

Пмогите разобраться с фреймами в WebBrowser

Сообщение Scorry_1 » 10.12.2005 (Сб) 0:20

Ситуация такая: так как мне приходится обрабатывать коды разных фреймов одной страницы, решил их распихать по разным WebBrowser. Верхний фрейм(toolFrame) имеет ссылки как на mainFrame так и на открытие в новом окне. Проблема с ссылками на mainFrame - их открывает где только возможно, но не там где надо. пытался решить проблему таким способом:

Код: Выделить всё
Private Sub toolFrame_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
If TargetFrameName = "mainFrame" Then
mainFrame.Navigate2 URL
toolFrame.Navigate2 "где_и_было"
End If
End Sub


Но ничего не вышло, по всей видимости, событие Navigate2 вообще не происходит... =(
Помогите, пожалуйста - подскажите... В поиске не нашел чего-то подобного... =(((

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 10.12.2005 (Сб) 17:56

Событие, по всей видимости, происходит. Выведи для подтверждения msgbox в начале программы.

Не понял, зачем это
toolFrame.Navigate2 "где_и_было"


Наверное, надо ещё добавить
Set pdisp=mainFrame.object

Scorry_1
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 10.11.2005 (Чт) 11:11
Откуда: Находка

Сообщение Scorry_1 » 10.12.2005 (Сб) 18:26

Alexanbar, msgbox вставлял - не появляется.

Не понял, зачем это

это чтобы прекратить навигацию, т.к. открытие происходит в первом открытом окне IE или при отсутствии такового в новом окне.

Set pdisp=mainFrame.object

а что это для чего? объясните, пожалуйста.

Scorry_1
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 10.11.2005 (Чт) 11:11
Откуда: Находка

Сообщение Scorry_1 » 10.12.2005 (Сб) 20:50

Проблема решена:
Код: Выделить всё
Public Sub DropTargets(mobjDocument As HTMLDocument)
    Dim objElements      As Object
    Dim objElement      As Object
    Dim I               As Long
    Do
        If mobjDocument Is Nothing Then Exit Do
        On Error Resume Next
        For Each A In mobjDocument.getElementsByTagName("A")
        A.Target = ""
        Next
    Exit Do: Loop
End Sub

Private Sub toolFrame_StatusTextChange(ByVal Text As String)
On Error Resume Next
  With toolFrame
  End With
    Select Case toolFrame.ReadyState
    Case READYSTATE_INTERACTIVE
        DropTargets toolFrame.Document
    End Select
End Sub

Private Sub toolFrame_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
On Error Resume Next
If тут длинное условие у меня Then
mainFrame.Navigate2 URL
toolFrame.Navigate2 "где и было"
End If
End Sub


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

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

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

    TopList