Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Переменные из окна браузера [D7, WinXP]


mfender ©   (2012-10-10 11:24:00) 

Здравствуйте, уважаемые!

После выполнения Javascript в браузере (TWebBrowser) остаётся некая переменная. Путём нехитрых манипуляций с OleVariant её достаточно легко получить. Но это хорошо, если она строка, или Integer. Но если там объект, то мне приходит строка вида [object Object],[object Object],[object Object],[object Object],[object Object],[object Object](то же самое, как если в консоли браузера написать varname.toString()).

Всвязи с этим вопрос: есть ли какой-нибудь простой способ получить этот объект, не прибегая к сериализации объекта в JSON или XML?


mfender   (2012-10-10 19:03:00) [1]


> - а ты уверен, что там строка, а не массив VT_DISPATCH,
> со всеми вытекающими(в данном случае - со свойствами link
> и text)?
> Но JSON попроще будет...

Вот не уверен, потому и спрашивал.
Но JSON, уже теперь уверен, лучше. По аналогии с XML Data Binding делаю класс. JSON разбираю при помощи uLkJSON. Нашёл такую вот штуку. Без документации, правда, но там всё более-менее интуитивно понятно.


han_malign   (2012-10-10 15:20:00) [2]


> В переменной r строка

- а ты уверен, что там строка, а не массив VT_DISPATCH, со всеми вытекающими(в данном случае - со свойствами link и text)?
Но JSON попроще будет...


mfender   (2012-10-10 12:52:00) [3]

В глобальных переменных окна (IHTMLWindow2) есть переменная array ret. При помощи Firebug она выглядит вот так (см. картинку)

http://i26.fastpic.ru/big/2012/1010/ce/e35e12f4f5665fb7585ca64aa3b0ddce.png

Это массив объектов.

var
 doc: IHTMLDocument2;
 res, r: OleVariant;
begin
 res := WebBrowser1.Document as IHTMLDocument2;
 res := res.parentWindow;
 r := res.ret;


В переменной rстрока [object Object],[object Object]....

Но, вобщем-то, уже понимаю. что в Delphi нет понятия ассоциативных массивов. Действительно нужно разбирать JSON. Наверное, оно и к лучшему, хоть и немного муторным кажется сама писанина )))


Лаур Балаур   (2012-10-10 12:05:00) [4]

Есть. Сериализация в JSON или XML.

А вообще, какой такой "объект" нужно "получить"? В каком виде? Не угодно ли пояснить детали сей операции "получения"? Только без фантазий, битте.


Наверх

Титульная страница Поиск, карта сайта Написать письмо