|
|
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Помогите пожалуйста, вот задача: Есть программа (форма), написанная на VBasic Express Edition, в ней - элемент WebBrowser1 (тип WebBrowser), который вызовом WebBrowser1.Navigate("www.xxx.ru") загружает и показывает интернет-страницу. Сокращенный код страницы следующий: ----------------------------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <html> <body> Html-часть документа <script language="JavaScript" type="text/JavaScript"> var massiv = new Array(); var variable=1; massiv[0] = new Mass();massiv[0].Name = "Name1";massiv[0].Type = "type-1";massiv[0].Size = 12; massiv[1] = new Mass();massiv[1].Name = "Name2";massiv[1].Type = "type-2";massiv[1].Size = 23; massiv[2] = new Mass();massiv[2].Name = "Name3";massiv[2].Type = "type-3";massiv[2].Size = 4; function Mass() { } </script> </body> </html> ----------------------------------------------------------------------------------------------- После загрузки страницы мне необходимо, нажав кнопку в форме, получить значения переменных из секции script этого документа. В программе-обработчике нажатия этой кнопки следующий код (VBasic) Dim x1,x2,x3 x1 = WebBrowser1.Document.DomDocument x2 = x1.script.variable ' работает, и x2 получает значение 1 x3 = x1.script.massiv ' работает, но возвращает System.__CommObject, чего с ним дальше делать не пойму x3 = x1.script.massiv(0).Name ' !!! НЕ работает, т.е. не могу получить доступ к элементам массива massiv !!!, возвращает ошибку 'член группы не найден' Подскажите пожалуйста, как получить значения из элементов массива massiv[0].Name, massiv[0].Type и т.д. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2009, 19:24 |
|
||
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
Вы вазджэ читали про функции и их объявления в JS? Нет? Жаль... Учебник Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 00:51 |
|
||
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
Спасибо за ссылку на учебник. Код html-страницы моя программа загружает с сайта в объект WebBrowser, он написан не мной и менять я его не могу. Суть вопроса в том, что загрузив в мою программу чужую html-страницу дальше необходимо ее проанализировать, а точнее получить значения элементов массива, который объявлен и инициализирован в этой странице . Получить значение отдельной переменной удается, а вот массива-нет. Спасибо всем, кто присоединится к обсуждению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 10:03 |
|
||
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
ddimon, тогда передайте тому, кто писал данный html код, чтобы больше так не шутили, а то и до инфаркта не далеко :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 20:21 |
|
||
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
ddimon x3 = x1.script.massiv ' работает, но возвращает System.__CommObject...возвращает ошибку 'член группы не найден' Код: plaintext 1. _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 23:18 |
|
||
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
x3 = x1.script.massiv.Item(0).Name к сожалению тоже не работает, возвращает ошибку 'Общий член "Item" для типа "JScriptTypeInfo" не найден.' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2009, 23:49 |
|
||
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
А в васике нЭт ничего а-ля foreach/for( in )? [size](чтобы пробежаться и посмотреть, что имеет x1.script.massiv) P.S. Debugger, по идее, для System.__CommObject ничего вразумительного не покажет, но, мало ли... Смотрели? _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2009, 09:53 |
|
||
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
УРРАААА! УРРАААА! Работает!!! For Each x4 In x1.script.massiv x5 = x4.Name x5 = x4.Type x5 = x4.Size Next Ex_Soft, Вы умница! Спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2009, 12:15 |
|
||
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
/me думает: гм... вообще-то - подразумевалось другое. Типо пробежаться по всем свойствам/функциям (а-ля как в JS'е) и посмотреть, что там у x1.script.massiv ЭстЪ а-ля item для доступа к коллекции.... _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2009, 09:11 |
|
||
|
Доступ к массиву из раздела script в файле .htm
|
|||
|---|---|---|---|
|
#18+
В теле For Each переменная x4 представляет собой System.__CommObject, и как Вы правильно заметили, что Debugger не показывает для нее ровным счетом ничего. Работать с ней можно или как с целым объектом или получать доступ к полям его структуры через x4.Name, x4.Type и т.д, а как посмотреть, есть ли в этом объекте еще что-нибудь я не знаю. For Each x4 In x1.script.massiv debug.writeline(x4) -> "System.__CommObject" debug.writeline(x4.Name) -> "Name1" Next Но проблема в любом случае решена, причем работает и присваивание значения, т.е. справедливо x4.Name="Text new" script это проглатывает и работает с новым значением. Также получилось и вызывать функции script-а с передачей параметров и возвратом результата. Власть над html-страницей почти полная. Единственное, что не удалось преодолеть, это вывод сообщений скриптом функциями alert и т.п. Пришлось на время загрузки страницы повесить таймер, который шлет клавиатуре {ESC}, таким образом сбрасывая эти сообщения. Но это терпимо, хотя решение некрасивое и кривое. Еще раз спасибо за помощь. Был близок к отчаянию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2009, 00:53 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=35989079&tid=1454832]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 457ms |

| 0 / 0 |
