Показать полную графическую версию : "#" в ссылке в vbs
Как сделать, чтобы в vbs работал?
Из-за того, что в ссылке "#" - ссылка не читается.
Option Explicit
Const navOpenInNewTab = &H00800
Const navOpenInBackgroundTab = &H01000
Const navOpenNewForegroundTab = &H10000
With WScript.CreateObject("InternetExplorer.Application")
.Navigate "https://111/#/111"
.Navigate2 "https://111/#/111", navOpenInNewTab
.Visible = True
End With
WScript.Quit 0
Sisin, а разве может быть в пути ссылки #? Он же якорь обозначает.
Sisin, а разве может быть в пути ссылки #? Он же якорь обозначает. »
Видимо якорь подняли)))
У Икеи весь каталог с "#". Например:
https://www.ikea.com/ru/ru/catalog/products/S69251595/#/S69281696
Sisin, спасибо за ссылку, получается, что могут.
Хмм… Вот это:
Option Explicit
Const READYSTATE_COMPLETE = 4
With WScript.CreateObject("InternetExplorer.Application")
'.Visible = False
.Visible = True
.Navigate "https://www.ikea.com/ru/ru/catalog/products/S69251595/#/S69281696"
Do
WScript.Sleep 100
Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
End With
WScript.Quit 0
у меня под IE9 отрабатывает вполне корректно.
у меня под IE9 отрабатывает вполне корректно. »
У меня тоже, спасибо.
Только добавил, чтобы можно было несколько вкладок открывать:
Option Explicit
Const navOpenInNewTab = &H00800
Const navOpenInBackgroundTab = &H01000
Const navOpenNewForegroundTab = &H10000
Const READYSTATE_COMPLETE = 4
With WScript.CreateObject("InternetExplorer.Application")
'.Visible = False
.Visible = True
.Navigate "https://www.ikea.com/ru/ru/catalog/products/S69251595/#/S69281696"
.Navigate2 "https://www.ikea.com/ru/ru/catalog/products/S69251595/#/S69281696", navOpenInNewTab
Do
WScript.Sleep 100
Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
End With
WScript.Quit 0
Sisin, для информации: а до того под каким IE Вы пробовали?
Sisin, для информации: а до того под каким IE Вы пробовали? »
И тогда и сейчас IE11.
Sisin, а почему ж тогда у Вас с первым кодом не сложилось:
Из-за того, что в ссылке "#" - ссылка не читается. »
? По факту ведь отличий от второго — нет ничего.
? По факту ведь отличий от второго — нет ничего. »
Все дело в строчках Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE.
Const READYSTATE_COMPLETE = 4
Do
WScript.Sleep 100
Loop Until Not .Busy And .ReadyState = READYSTATE_COMPLETE
Без них не работает.
Да ладно… У меня и без них работает. Браузер-то никуда не девается, в худшем случае потребуется немного подождать, пока не пройдёт загрузка.
Или это у Вас только начало скрипта, а дальше идёт работа с содержимым загруженной страницы? Тогда — да, иначе никак (ну, или тупо пауза/задержка в надежде, что страница успеет загрузится за указанное в паузе время).
В принципе, указанный подход хорошо работает на достаточно простых страницах. Хуже, когда там AJAX'а напихано по самое «мама не балуй». Тогда, бывает так, что и уже .Busy ложно, и .ReadyState равно READYSTATE_COMPLETE, но затем страница асинхронно продолжает подгружаться новыми запросами, и требуется энное число раз делать такие циклы Do…Loop через промежуточные паузы, дабы дождаться окончательной подгрузки страницы. Проще всего, когда на сайте есть какая-нибудь lite или мобильная версия страницы, на которых AJAX не используется — возни меньше, а результат тот же.
А нельзя ли в таком скрипте прописать для НЕКОТОРЫХ ссылок загрузку через прокси (Например, TOR) при условии, что TOR запущен и слушает 9050 порт??? Или так не сделать??
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.