Страница: 1 |
Страница: 1 |
Вопрос: WebBrowser1 - чтобы формы запоминали свои значения
Добавлено: 01.04.06 12:32
Автор вопроса: a-nix | ICQ: 336960222
У IE все что было введено в форму - запоминается, если включено в настройках. Как сделать автозаполнение полей форм в самодельном браузере на основе ocx - WebBrowser???
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Leha
Вопросов: 37
Ответов: 68
Профиль | | #1
Добавлено: 01.04.06 15:46
для начала подключаем Microsoft HTML Object Library через преференс (это mshtml.tlb)
потом размещаем на форме WebBrowser (называем его WB1 а то утамительна многа букв писать)
и следующий код:
Private Sub Form_Load()
WB1.Navigate "http://ya.ru"
End Sub
Private Sub WB1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim doc As MSHTML.HTMLDocument
Dim Form As MSHTML.HTMLFormElement
Dim inpt As MSHTML.HTMLInputElement
Set doc = WB1.Document
For Each Form In doc.Forms
For Each inpt In Form.elements
inpt.Value = "TEXT"
Next
Next
End Sub
запускаем и получаем окно яндекса где в строке поиска у нас слово TEXT
и вообще эту тлбшку не лишнее хорошо проштудировать - там многа всяких интересностей
Номер ответа: 2
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #2
Добавлено: 01.04.06 16:09
А не легче проходить все это в массив пихать и в событии Change текстового окна для набора адреса проходить по массиву и сравнивать вводимое примерно так:
For i=Lbound(ar) To UBound(ar)
If arr(i) like "*" & txtAddr.Text & "*" then
чегото делаем
exit for
End If
Next i
Номер ответа: 3
Автор ответа:
Leha
Вопросов: 37
Ответов: 68
Профиль | | #3
Добавлено: 01.04.06 16:24
а что такое ar?
массив чего?
текстовых полей хтмл документа?
Номер ответа: 4
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #4
Добавлено: 01.04.06 18:33
Что-то, Leha, не по теме немного...
Ему нужно "автозаполнение"... Поробнее о том, что это такое, есть в
справке IE6:
Номер ответа: 5
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #5
Добавлено: 01.04.06 19:18
Ясное дело, массив типа String. Принцип таков: при загрузке в ВебБроузер контрол страницы добавлять в него новую строку и все. Вместо выпадающего списка можно съэмулировать свой - форма без границы с обычным списком на ней, которую показывают в нужном месте и все. Тогда вообще можно без массива обойтись: у Вас же будет список значений - по нему и ищите.
Номер ответа: 6
Автор ответа:
Leha
Вопросов: 37
Ответов: 68
Профиль | | #6
Добавлено: 02.04.06 12:43
Балин, я думал те чето робоформа надо
Номер ответа: 7
Автор ответа:
a-nix
ICQ: 336960222
Вопросов: 2
Ответов: 5
Профиль | | #7
Добавлено: 03.04.06 09:30
нужно просто включить "автозаполнение". Не подставлять свои списки, а просто где-то как-то какому-то свойству сказать "автозаполенение.enable=true" или через win api какой-то командой сказать, что данный браузер с таким-то хендлом работает с автозаполнением или по крайней мере с параметрами по умолчанию в настройках браузера.
Эмулировать вместо текстовых контролов ниспадающие списки -гиморно. Честно говоря, пока не представляю как. Как отслеживать все, что попадает в текстовые поля понял, а вот как подменить их списком, да еще так, чтобы при написании он анализировал вхождения - это нужно еще и скриптину дописывать в конец страницы при загрузке - гимор и только.
ps Leha, по какому свойству отличать элементы ввода, среди прочих?
Номер ответа: 8
Автор ответа:
a-nix
ICQ: 336960222
Вопросов: 2
Ответов: 5
Профиль | | #8
Добавлено: 03.04.06 09:35
vbman, твой ответ я не понял
Номер ответа: 9
Автор ответа:
a-nix
ICQ: 336960222
Вопросов: 2
Ответов: 5
Профиль | | #9
Добавлено: 03.04.06 09:40
Leha, про робоформа: не получается запомнить, а затем установить у Check b Option. Как это сделать?