Страница: 1 |
Страница: 1 |
Вопрос: Ещё один вопрос по WebBrowser1
Добавлено: 08.04.06 16:21
Автор вопроса: SRV | ICQ: 254226129
Кароче хочу замутить типа окошко с смайликами, загружаю в WebBrowser1 кучу смайлов. Возможно ли записать в переменную при клике на одном из смайлов значение к примеру ":)" ???
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #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
Номер ответа: 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="2"><img src="happy1.gif" /></a>
...
просто присваивать peremennaya=URL
и потом cancel=true.
mySmiley=URL
Cancel=true
End Sub
В mySmiley номер смайлика.
Номер ответа: 6
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #6
Добавлено: 08.04.06 20:43
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-сайт:
Профиль | | #9
Добавлено: 10.04.06 15:31
Не знаю, поможет ли это (вроде вопрос уже раскрыт).. Вот кусочек
аналогичного кода из проекта VBNet OfflineClient .NET Edition:
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