![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переменные из окна браузера [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.
А вообще, какой такой "объект" нужно "получить"? В каком виде? Не угодно ли пояснить детали сей операции "получения"? Только без фантазий, битте.