Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как поймать загрузку страницы?

22K
30 апреля 2010 года
FloyDos
81 / / 14.08.2009
следующий код не работает
Код:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
window.location="http://www.google.com";
window.&#111;&#110;load=init;
function init(){
    var m = document.activeElement.value;
    alert('The active element is '+m);
}
</script>
</head>

<body>
</body>
</html>


убираем строчку

 
Код:
window.location="http://www.google.com";


и все ок, выдает сообщение

иными словами, когда загружаем пустую страницу, функция вызывается и т.п.
но когда заходим на сайт - никакого результата, будто страница недогружена о_О

подскажите, пожалуйста, что не так.
274
30 апреля 2010 года
Lone Wolf
1.3K / / 26.11.2006
А что вы хотите сделать? Выполнить ЖС на странице чужого сайта?
399
30 апреля 2010 года
KIV
432 / / 20.01.2009
Когда страница загрузится скрипт уже будет выгружен.
22K
30 апреля 2010 года
FloyDos
81 / / 14.08.2009
Цитата: KIV
Когда страница загрузится скрипт уже будет выгружен.



а как сделать чтобы скрипт грузился после загрузки страницы?

253
30 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: FloyDos
а как сделать чтобы скрипт грузился после загрузки страницы?


Я использую такую функцию:

Код:
// from xpoint.ru
function AddOnLoad(f) {
   var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null
   if (root){
      if(root.addEventListener) root.addEventListener("load", f, false)
      else if(root.attachEvent) root.attachEvent("onload", f)
   } else {
      if(typeof window.onload == 'function') {
         var existing = window.onload
         window.onload = function() {
            existing()
            f()
         }
      } else {
         window.onload = f
      }
   }
}

// пример:
AddOnLoad(function () {
  alert('I\m loaded now!');
});
22K
30 апреля 2010 года
FloyDos
81 / / 14.08.2009
спасибо, ProgerXP
Код:
<script type="text/javascript">
function AddOnLoad(f) {
   var root = window.addEventListener || window.attachEvent ? window :

document.addEventListener ? document : null
   if (root){
      if(root.addEventListener) root.addEventListener("load", f, false)
      else if(root.attachEvent) root.attachEvent("onload", f)
   } else {
      if(typeof window.onload == 'function') {
         var existing = window.onload
         window.onload = function() {
            existing()
            f()
         }
      } else {
         window.onload = f
      }
   }
}
window.location="http://www.google.com";
AddOnLoad(function () {
  alert('I\m loaded now!');
});
</script>

то же самое. если убрать локейшн, то все ок работает - то есть при загрузке пустой страницы(
может в локейшн дело?
извините, может банальные вопросы, я в этом деле новичок совсем.
253
01 мая 2010 года
Proger_XP
1.5K / / 07.08.2004
Тык конечно обработчик вызываться не будет, вы ж его ещё не задали! Поставьте location после вызова AddOnLoad()
22K
01 мая 2010 года
FloyDos
81 / / 14.08.2009
ничего не поменялось. он как выдавал сообщение только на пустую страницу, так и выдает. а на загрузку с содержимым- вообще ничего
253
01 мая 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: FloyDos
ничего не поменялось. он как выдавал сообщение только на пустую страницу, так и выдает. а на загрузку с содержимым- вообще ничего


А, всё ясно, я невнимательно читал. Вам нужно поймать загрузку другой страницы, и вы хотите сделать это из скрипта на предыдущей странице? Так не получится.

  1. вы ставите обработчик на onload
  2. затем открываете другую страницу
  3. так как страница новая, то все данные о предыдущей стираются
  4. а когда страница уже собственно загрузилась, обработчик, естесственно, никто не ставил, поэтому ничего и не вызывается

Если вы хотите поймать загрузку другой страницы, то можно попробовать пошаманить с iframe + задавать её onload. Хотя в общем случае подобные манипуляции будут определены как попытка XSS и блокированы вменяемыми браузерами.

Зачем вам вообще надо ставить обработчик на загрузку ду=ругой страницы?
22K
01 мая 2010 года
FloyDos
81 / / 14.08.2009
Цитата: Proger_XP


Зачем вам вообще надо ставить обработчик на загрузку ду=ругой страницы?



Хочу отправить в активное окно некоторый текст ;)

253
01 мая 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: FloyDos
Хочу отправить в активное окно некоторый текст ;)


Я и говорю, это XSS.

325
02 мая 2010 года
Franky
723 / / 10.08.2005
не морочьте себе голову, сделайте отправку по таймингу
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог