Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.03.2012, 22:11
Аватар для zOdmin
Аспирант
Отправить личное сообщение для zOdmin Посмотреть профиль Найти все сообщения от zOdmin
 
Регистрация: 05.03.2012
Сообщений: 62

Обработка страницы по ходу ее загрузки
Собственно вопрос в забже.

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

Далее можно указать window.onload, но здесь две проблемы:
1) Сама страница переопределяет window.onload под свои нужды.
2) Страница может грузиться долго, а загруженные элементы желательно модифицировать (innerHTML/outerHTML) как можно раньше. А то иначе страница загружается как есть, а потом (через заметное время) резко меняет свой вид.

Пробовал парсить весь документ, игнорируя факт загрузки. Но вот проблема: если элемент <h1>xxxyyy</h1> был загружен наполовину (<h1>xxx), то и для изменения будет доступна только половина. Остальная часть спокойно дозагрузится к модифицированному варианту.

Итак, вопрос - как определить, загружен элемент или нет? К примеру ищем первое вхождение h1:
var h1=document.getElementsByTagName('h1');
Как узнать, что h1[0] полностью загружен?
Ответить с цитированием
  #2 (permalink)  
Старый 05.03.2012, 22:37
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Мой вариант.
1. Ставим greasemonkey для ФФ (при чем для хрома свои финты ушами, для оперы совсем свои, на ие не пробовал)
2. Делаем setTimeout и стартуем свою функцию.

Вариант как начать:
// ==UserScript==
// @name          Имя скрипты. лучше латинницей
// @namespace      *site.ru/*
// @description   Описание скрипта
// @include        *site.ru/*
// @require			[url]http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js[/url]
// ==/UserScript==

$(document).ready(function() 
{

//тут уж точно по загрузке, но с фреймами иногда не прокатывает, надо 

setTimeout(function(){

//основной код

},200);


});


Посмотреть, точнее получить ссылки где и как скачать, примеры с кроссдоменным запросом для вышеозначенных браузеров можно тут http://alideria.ru/forum.php?thread=7520&f=0 (первый пост)
Ответить с цитированием
  #3 (permalink)  
Старый 05.03.2012, 23:37
Аватар для zOdmin
Аспирант
Отправить личное сообщение для zOdmin Посмотреть профиль Найти все сообщения от zOdmin
 
Регистрация: 05.03.2012
Сообщений: 62

Сообщение от Serg_pnz
$(document).ready(function()
Это jQuery? Неужели все так сложно для простой проверки на готовность элемента?

Сообщение от nasqad
не помогай ему, он плохой
Почему плохой?
Ответить с цитированием
  #4 (permalink)  
Старый 06.03.2012, 06:58
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

zOdmin,
ну как бы мне проще на jQuery. Если ты знаешь js настолько, что можешь сам написать функцию ready, то по чему нет?
И опять-таки jQuery в дальнейшем пригодится для обработки и вставки результатов на страницу.
Ответить с цитированием
  #5 (permalink)  
Старый 06.03.2012, 09:12
Аватар для zOdmin
Аспирант
Отправить личное сообщение для zOdmin Посмотреть профиль Найти все сообщения от zOdmin
 
Регистрация: 05.03.2012
Сообщений: 62

Ладно, спасибо, попробую.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как имитировать клик по элементу созданого после загрузки страницы? anoth3r jQuery 3 29.09.2011 12:22
Как сделать паузу после загрузки страницы? denisOgr AJAX и COMET 2 06.08.2011 15:01
События "Начало загрузки страницы (HTML)" и "Все элементы из аякса загружены в DOM" qwert_ukg Events/DOM/Window 3 07.06.2011 12:29
Порядок загрузки страницы и javascript prog90 Events/DOM/Window 9 18.12.2010 21:42
перегрузка страницы после загрузки ivashka Events/DOM/Window 2 06.07.2010 16:08