1

Тема: AHK: Ожидание загрузки странички

Кодеры подскажите ссылку, наверняка это уже сто раз обсуждалось.

Как мне в браузере (Опера) дождать полной загрузки страницы,
и после чего выполнить какую либо функцию.

Примерная схема скрипта:


WinWait, Пушкин — Яндекс: Нашёлся 31 млн ответов - Opera, 
IfWinNotActive, Пушкин — Яндекс: Нашёлся 31 млн ответов - Opera, , WinActivate, Пушкин — Яндекс: Нашёлся 31 млн ответов - Opera, 
WinWaitActive, Пушкин — Яндекс: Нашёлся 31 млн ответов - Opera, 

Msgbox, Выполнение какой либо функции

Мой скрипт не работает, должным образом,
т.к. браузер (опера) начинает отображать заголовок раньше
(Пушкин — Яндекс: Нашёлся 31 млн ответов)
чем страница полностью загрузится.

Вопрос:
Как мне сделать что бы скрипт выполнил функцию, после полной загрузке страницы в опере?

2

Re: AHK: Ожидание загрузки странички

Да, обсуждалось. http://forum.script-coding.com/viewtopic.php?id=5766 Но где теперь?

3

Re: AHK: Ожидание загрузки странички

Эта тема, мягко сказать, не раскрыта.

4

Re: AHK: Ожидание загрузки странички

Тоже интересовался данной темой, но так и не смог найти информации на форуме, закрывающей данный вопрос.
Неужели процесс окончания загрузки/отображение странички характеризуется только данными нагрузки на процессор...?

5 (изменено: Irbis, 2012-01-31 18:14:06)

Re: AHK: Ожидание загрузки странички

Ну раз "нормальными" средствами проблему решить не удается, можно попробовать обходной путь.
Хотя, проводя медицинскую аналогию, мой метод напоминает удаление гланд через... эээ, в общем, неважно, главное - он работает!

Суть в чем - получаем цвет точки в адресной строке Оперы, то есть подводим курсор мыши и нажимаем Ctrl+Win+ЛКМ (левая клавиша мыши):

http://savepic.su/1305040m.jpg

Желательно именно так, как на рисунке (под буквами), а не просто в любом пустом месте адресной строки, иначе какой-нибудь длинный адрес может наложиться на тот пиксель, который проверяется, и скрипт перестанет работать. Далее, цвет точки проверяется в цикле, и на основе этого принимается решение (так как вид адр. строки меняется при загрузке страницы)

Собственно, скрипт:

; AutoHotKey_L version 1.1.5.6
PageLoading := 0
Xpos := 0
Ypos := 0
Color1 := 0
loop
{
   If (WinActive("ahk_class OperaWindowClass") and Xpos)
   {
      PixelGetColor, Color, Xpos, Ypos

      if Color <> %Color1%
         PageLoading := 1
	  else 
      if (Color = Color1 and PageLoading)
      {
         PageLoading := 0
         Msgbox, Загрузка страницы завершена
      }
   }
   Sleep, 300
}

^#Lbutton::
  MouseGetPos, Xpos, Ypos
  PixelGetColor, Color1, Xpos, Ypos
return

Если нет желания каждый раз проводить настройку скрипта, можно с помощью AU3_Spy посмотреть координаты и цвет интересующей точки в адресной строке Оперы, ввести их значения соответственно в Xpos, Ypos и Color1, а хоткей удалить (блок от ^#Lbutton:: до конца скрипта включительно)

Надеюсь, написанное выше кому-нибудь пригодится.
К сожалению, метод не сработает, если Опера не активна, свернута,  и т.д.

6 (изменено: creature.ws, 2012-01-31 18:41:25)

Re: AHK: Ожидание загрузки странички

По поводу if (%Color% == %Color1% and PageLoading)
при использовании  скобок выражение правильнее записать так:
if (Color = Color1 and PageLoading)
Так — происходит сравнение значений сохранённых в переменных.

7

Re: AHK: Ожидание загрузки странички

creature.ws, спасибо, поправил. Пробовал и так, и так,  с "%%" и без них,  почему-то условие (MsgBox) срабатывает ВО время загрузки, а не после. Надоело разбираться. И вообще Вася Пупкин настолько активен, этот же вопрос запихал в тему про Window Spy, там ему помогли, похоже. Молодец, настойчивый, но ведь это не дело - плодить темы и отвлекать людей., можно было и отписаться здесь, что вопрос больше неактуален.

8 (изменено: Malcev, 2012-01-31 18:54:27)

Re: AHK: Ожидание загрузки странички

А вот так разве нельзя?
http://www.autohotkey.com/forum/topic35056.html+loaded

9

Re: AHK: Ожидание загрузки странички

Malcev, по ссылке в твоем посте обсуждается javascript, который изменяет заголовок страницы (Ну это ты и так знаешь, видимо, но мало ли не все знакомы с английским )
Так вот, тема там не до конца раскрыта, например у меня скрипт в Опере не срабатывает на некоторых сайтах, youtube.com и прочих. А жаль... Можно было бы намного упростить принцип работы моего AHK скрипта.

10

Re: AHK: Ожидание загрузки странички

У меня так работает

// ==UserScript== 
// @name           loaded 
// @namespace      my 
// @description    indicate if a page is loded 
// @include        http://examplesite.com/
// ==/UserScript== 


window.addEventListener( 
  'load', 
  function (e) { 
    document.title += " [loaded]"; 
 }, false);

Вот тут обсуждение
http://my.opera.com/community/forums/to … ?id=681282