Vb+html

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

Vb+html

Сообщение polym » 10.06.2007 (Вс) 21:00

люди помогите прошу вас, такой вопрос:
есть на форме два webBrowser в одном открывается страничка откуда надо вытянуть с поля ><input type=text value="Games"> слово Games и вставить его в определённое поле в страничке во втором webBrowser
Подскажите хотябы методику, путь решения, хоть что-нибудь!

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

Сообщение dr.MIG » 11.06.2007 (Пн) 9:25

Поиск по форуму по слову WebBrowser. Затем ещё по слову getAtribute. Если останется что-то непонятно, спрашивай.
Salus populi suprema lex

polym
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.06.2007 (Вс) 20:51

Сообщение polym » 11.06.2007 (Пн) 23:29

"webbrowser.document.<id_кнопки>.value - то что в поле. Ну и тд..." вот что нашёл нв форуме, только это не работает чего-то :/
а как подскажите вытянуть текст из поля без id? или из <textarea> ?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 12.06.2007 (Вт) 0:15

Обращаться не по id-у.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

polym
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.06.2007 (Вс) 20:51

Сообщение polym » 13.06.2007 (Ср) 19:15

эх, неужели никто не знает?
подскажите как вытянуть/заполнить текстовое поле?! плиз :(

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.06.2007 (Ср) 20:10

Я вроде бы сказал. Обращаться другими способами. Не по name-у и не по id-у. По индексу например.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

polym
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.06.2007 (Вс) 20:51

Сообщение polym » 13.06.2007 (Ср) 20:56

приведи пожалуйста пример (
вот есть конструкция: <input type=text name=password value="jyz3s8ci"> надо скопировать в textbox jyz3s8ci !

polym
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.06.2007 (Вс) 20:51

Сообщение polym » 13.06.2007 (Ср) 20:59

ещё один вопрос созрел, работа со строками..
имеется текст, например "frtj76>hf fj2" нужно извлечь только символы до > причём их кол-во не известно.
хмм, наверное надо было отдельную тему создать...

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 13.06.2007 (Ср) 21:05

See Split, InStr

polym
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.06.2007 (Вс) 20:51

Сообщение polym » 13.06.2007 (Ср) 22:32

оо, гуд, ОГРОМНОЕ спасибо skiperski :D

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 07.07.2007 (Сб) 14:49

А вообще есть несколько способов.
<input type=text name=password value="jyz3s8ci">

Обращение по ИД
Код: Выделить всё
Print WebBrowser.Document.GetElementByID("id элемента").Value


Поиск по имени
Код: Выделить всё
For each Elem in WebBrowser.Document.GetElementsByName("password")
  Print Elem.Value
Next


Поиск по тэгу
Код: Выделить всё
For each Elem in WebBrowser.Document.GetElementsByTagName("INPUT")
  If Elem.Name = "password" Then
    Print Elem.Value
    Exit For
  End if
Next


по тагу также можешь вычленить и TEXTAREA только учти что в текстареи значение может хранится в свойстве TEXT ...

т.е.
Код: Выделить всё
For each Elem in WebBrowser.Document.GetElementsByTagName("TEXTAREA")
   Print Elem.Text ' или .Value - не проверял
Next


А вообще подключи в Референс ссылку на Microsoft HTML и получишь на этапе разработке доступ ко всему что тебе интересно :)

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 12.07.2007 (Чт) 18:34

а как обратиться к элемету во фрейме? пробовал
web.document.frames("имя").GetElementByID("ид_элемента").value
web.document.frames.item(1).GetElementByID("ид_элемента").value
web.document.frames.getelementbyname("имя_формы").GetElementByID("ид_элемента").value
web.document.all("имя_формы").GetElementByID("ид_элемента").value

- Object doesn't support this property or method =\

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

Сообщение alibek » 12.07.2007 (Чт) 19:12

Если не ошибаюсь, нельзя обращаться к содержимому фреймов из родительского окна, если во фрейме загружена страницы из хоста, отличного от родительского.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 12.07.2007 (Чт) 19:22

Не ошибаешься. Нельзя. И правильно, что нельзя.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 12.07.2007 (Чт) 20:24

опа. А есть идеи как изменить значение текстового поля во фрейме? Загрузить его отдельно боюсь не получится, так как речь идёт о чате =\

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 16.07.2007 (Пн) 14:33

т.е. если я во фрем засуну страницу с апача, в которой будет фрейм и в фрейме страница со IIS сервера опятьже с мой машины мне веб-браузер ничего не покажет?

или например у меня на хосте будет документ с фреймом - во фреме документ со второго сервера в локалке - тоже не покажет?

2 nekeda: я вообще в этом случае делаю так:

Код: Выделить всё
Dim WithEvents Page As HTMLDocument
Set Page = Web.Document

в нужном месте ставлю
Код: Выделить всё
Stop

открываю View - Locals Window
и тм все свойства как на ладони и фреймы и формы и т.д.

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 16.07.2007 (Пн) 16:51

SSecurity
не понял про "нужное место" :) можно поподробнее?

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 16.07.2007 (Пн) 22:01

берешь и внутри кода, там где тебе нужно получить искомое значение ставишь Stop запускашься на выполнение, когда у тебя программа до стопа дойдет - остановится ... вот в этот момент и могешь все переменные и свойства объявленных объектов посмотреть :)

Типа так:)

С Уважением,
Сергей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2007 (Вт) 8:37

А брекпоинт уже не рулит? Watchs (кстати, как перевести) уже не рулят?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.07.2007 (Вт) 9:00

конечно рулят но мне в некоторых случаях STOP проще написать, вместо того чтобы F9 или тыкнуть мышей
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 17.07.2007 (Вт) 9:55

Если Stop не убрать, он после компиляции превратится в End. Так что лучше уж Debug.Assert 0
Изображение

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.07.2007 (Вт) 12:42

keks-n писал(а):Если Stop не убрать, он после компиляции превратится в End. Так что лучше уж Debug.Assert 0

Если бы он просто в End превратился - это пол беды, а на самом деле - вылетит сообщение
Код: Выделить всё
msgbox "Stop statment ...", 48

и за ним завершение
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 17.07.2007 (Вт) 13:07

эмм.. мне нужно менять значения текстового поля во фрейме. Причём тут Stop, Watchs, Debug и т.д.?

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.07.2007 (Вт) 13:36

nekeda ну если сайт твой - то легко ... :) в противном случае -
ставь форму, в неё браузер и без фреймов отображай - и будет тебе доступ к свойствам:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 17.07.2007 (Вт) 14:45

SSecurity
форма есть, браузер на ней есть. Как отобразить без фреймов?

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.07.2007 (Вт) 14:55

nekeda все зависит от того что ты сделать хочешь ...
по сути твой фрейм это тотже ВебБраузер, отображающий страницы ... единственное что все функции родителя тебе прийдется на себя взять.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 17.07.2007 (Вт) 15:22

SSecurity
в этом фрейме есть input type="text", у него есть ID. Как к нему обратится и изменить его Value?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2007 (Вт) 15:25

Если именно ID (а не Name), то так (допусти ID="Foo")

MyFrame.Foo.Value="Hello, nekeda"
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 17.07.2007 (Вт) 15:37

если я врно понял, то
Код: Выделить всё
web.document.GetElementByID("ид_элемента").value = "НовоеЗначение"

так можно менять текст в браузере... значения элементов
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.07.2007 (Вт) 15:40

Тогжа уж
Код: Выделить всё
web.document.frames("SomeFrame").ид_элемента.value = "НовоеЗначение"
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

След.

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

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

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

    TopList