Что нового

[Сеть, интернет] Скроллинг в IE

Vlasssov

Осваивающий
Сообщения
428
Репутация
25
Павел Дуров не прекращает святую борьбу с желающими автоматизировать его детище.
Новый прикол при формировании ссылок на членов группы - они подгружаются вместе со скролингом. Вопрос - как реализовать скроллинг в IE? Смысл в том, что после передвижения вниз страницы - там появляются новые члены группы. Может там какой есть подвох?
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
A PgUp и PgDown уже не катят? :whistle:
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Vlasssov [?]
Вопрос - как реализовать скроллинг в IE?
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

$oIE = _IECreate('http://news.google.ru/nwshp?hl=ru&tab=wn')

$Form1 = GUICreate("IE", 183, 52, 384, 310)
$Button1 = GUICtrlCreateButton("Up", 96, 12, 75, 25, 0)
$Button2 = GUICtrlCreateButton("Down", 12, 12, 75, 25, 0)
GUISetState(@SW_SHOW)


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
	Case $GUI_EVENT_CLOSE
		Exit
	Case $Button1
		If Not WinExists("[CLASS:IEFrame]") Then Exit
		$oIE.document.parentWindow.scrollBy(0,-1*300)
	Case $Button2
		If Not WinExists("[CLASS:IEFrame]") Then Exit
		$oIE.document.parentWindow.scrollBy(0,1*300)

	EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
madmasles [?]
Скажите, а к отдельным элементам IE-страницы это можно как-то "прикрутить"?
Можно, но там уже используется другой метод scrollTop.
Вот небольшой пример, так сказать чисто пощупать :smile: (правда, довольно некорректный в отношении кода):
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

Dim $sText, $i = 0
$sUrl = 'http://www.consultant.ru/online/'
$oIE = _IECreate($sUrl)
_IELinkClickByText($oIE, 'Специальная интернет-версия')
_IELinkClickByText($oIE, 'за месяц')
$oListFrame = _IEGetObjById($oIE, 'listFrame')
$Form1 = GUICreate("IE", 183, 52, 384, 310)
$Button1 = GUICtrlCreateButton("Up", 96, 12, 75, 25, 0)
$Button2 = GUICtrlCreateButton("Down", 12, 12, 75, 25, 0)
GUISetState(@SW_SHOW)


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
        Exit
    Case $Button1
        If Not WinExists("[CLASS:IEFrame]") Then Exit
		$i += 1000        
		$oListFrame.scrollTop = $i
    Case $Button2
        If Not WinExists("[CLASS:IEFrame]") Then Exit
		$i -= 1000
        $oListFrame.scrollTop = $i

    EndSwitch
WEnd


Однако в задаче, которую вы решали в теме Как получить список документов с этого сайта (достать из html?), метод scrollTop в чистом виде IMHO не эффективен. Там используются динамическая загрузка данных.
Задача там не простая, но выполнимая, один из вариантов вы уже привели.
 

eropov

Jury
Сообщения
195
Репутация
25
Прокрутка скрола в IE

Здравствуйте. Скажите, как прокрутить вертикальный скрол в окне браузера IE.
Ни кто не ответил на вопрос, быстрее меня самого, спасибо всем кто хотя бы взглянул на тему.
По сути, тему решил так:

Код:
$oIE.document.parentWindow.execScript("setTimeout(function(){window.scrollTo(0, 10000);},1)")

где первый параметр прокрутка скрола в пикселях с лева на право, второй сверху вниз

P.S.
Может быть кто то разберется и сделает функцию на AutoIt, которая дополнит библиотеку IE.
 
Верх