Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Ещё один вопрос по WebBrowser1 Добавлено: 08.04.06 16:21  

Автор вопроса:  SRV | ICQ: 254226129 
Кароче хочу замутить типа окошко с смайликами, загружаю в WebBrowser1 кучу смайлов. Возможно ли записать в переменную при клике на одном из смайлов значение к примеру ":)" ???

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 08.04.06 17:12
Прще всего сделать так: на смайлы повесить ссылки типа:

<a href="smile://1"><img src="smile1.gif" /></a>

Затем... Отлавливать событие BeforeNavigete2 у веббраузера, в нем
смотреть URL - если начинается на "smile://", то глядеть номер смайла
в URL и вставлять куда надо соответтвующее текстовое представление
смайла по этому номеру. При этом не забыть поставить Cancel=True,
чтобы веб-браузер не вздумал реально перейти на такой URL.

Ответить

Номер ответа: 2
Автор ответа:
 SRV



ICQ: 254226129 

Вопросов: 30
Ответов: 107
 Профиль | | #2 Добавлено: 08.04.06 18:23
Павел я извиняюсь, но не мог бы ты примерчик накатать, пожалуйста!

Ответить

Номер ответа: 3
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #3 Добавлено: 08.04.06 20:05
Павел я извиняюсь, но не мог бы ты примерчик накатать, пожалуйста!
Прошу прощения, но не хочу возвращаться к теме "Кто считает себя умным - загляни сюда", иначе Nj (aka Эндрю) снова намутит, но здесь и так все легко.

Ответить

Номер ответа: 4
Автор ответа:
 Nj



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #4 Добавлено: 08.04.06 20:24
2 Sacred Phoenix
http://vbnet.ru/forum/show.aspx?id=105679&tolastpage=true

2 SRV - попробуй перехватывать хуки, т.е.
нажатия на кнопки в твоём WB. Я рад бы дать пример, но сам не понимаю ничего про это :))
Посмотри в моей теме про WB. Похожее советовал DaSharm http://vbnet.ru/forum/show.aspx?id=105475&page=2

Ответить

Номер ответа: 5
Автор ответа:
 Nj



ICQ: 223663115 

Вопросов: 21
Ответов: 285
 Профиль | | #5 Добавлено: 08.04.06 20:34
2 SRV у Павла отличный способ. Можно еще проще
<a href="1"><img src="smile1.gif" /></a>
<a href="2"><img src="happy1.gif" /></a>
...
а потом в процедуре, упомянутой Павлом
просто присваивать peremennaya=URL
и потом cancel=true.

Private Sub vc2_BeforeNavigate2(...URL As Variant, ... Cancel As Boolean)
mySmiley=URL
Cancel=true
End Sub


В mySmiley номер смайлика.

Ответить

Номер ответа: 6
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 08.04.06 20:43
попробуй перехватывать хуки
:) Я кое что понимаю в этом, но лучше хуки не пробуй перехватывать :)))

Dim loaded As Boolean

Private Sub Form_Load()
    Const Data$ = "<a href='http:\\smile1'>Смайл1</a><br><a href='http:\\smile2'>Смайл2</a>"
    WebBrowser1.Navigate "about:" & Data$
    loaded = True
End Sub

Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
    If loaded = True Then Cancel = True: MsgBox URL, vbInformation, "Событие!"
End Sub

Ответить

Номер ответа: 7
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #7 Добавлено: 08.04.06 21:42
2 Hacker: да, nj пусть лучше не пробует ловить хуки :)

2 Nj: в href лучше указывать "smile://", потому что на странице могут быть и другие линки, которые останавливать не надо.

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 10.04.06 15:25
кстати да, если на стр ещё другие ссылки, то перед Cancel = True надо проверять шо клацнули именно на смайл

Ответить

Номер ответа: 9
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #9
Добавлено: 10.04.06 15:31
Не знаю, поможет ли это (вроде вопрос уже раскрыт).. Вот кусочек
аналогичного кода из проекта VBNet OfflineClient .NET Edition:

    Private Sub wbrMain_BeforeNavigate2(ByVal sender As Object, ByVal e As AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2Event) Handles wbrMain.BeforeNavigate2
        Dim Url As String = e.URL.ToString.ToLower
        If Url.StartsWith("oc://";) Then
            If Url.StartsWith("oc://showmessage=";) Then
                RaiseEvent ShowMessage(CInt(Val(Url.Substring(Url.IndexOf("=";) + 1))))
            ElseIf Url.StartsWith("oc://showpage=";) Then
                RaiseEvent ShowPage(CInt(Val(Url.Substring(Url.IndexOf("=";) + 1))) - 1)
            ElseIf Url.StartsWith("oc://messageupdate";) Then
                RaiseEvent MessagesUpdate()
            End If
            e.cancel = True
        End If
    End Sub

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам