Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Событие onLoad, но методами Prototyp'а, как записывается синтаксис? 
:(
    Опции темы
artuska
  Дата 14.8.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 5.5.2007

Репутация: нет
Всего: нет



Когда мы были маленькими детьми, мы писали событие onLoad в тэге <body>.
Как это сделать через Prototype? Вариант "забей, пиши <body onLoad='function()'>" не годится.
PM MAIL   Вверх
Exception
Дата 14.8.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: нет
Всего: 186



Ну вообще-то можно написать
Код
window.onload = function () {
  // ...
}
Но с библиотекой Prototype это никак не связано, просто мы присваиваем свойству объекта window функцию.
PM   Вверх
artuska
Дата 14.8.2007, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 5.5.2007

Репутация: нет
Всего: нет



Ок попробую.
Я  сейчас не на работе, поэтому проверить не смогу.

Хм... Мне нужно записать типа
Код

<body onLoad="JavaScript:getElementById('login').focus();">


Неосиливаю как это впихнуть в конструкцию window.onload = function () {  // ... }
Типа window.onload = getElementById('login').focus(); ???

Еще попробую написать типа
Код

 $('login').focus();

... может пакатит.
PM MAIL   Вверх
artuska
Дата 15.8.2007, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 5.5.2007

Репутация: нет
Всего: нет



Код
window.onload = function() { $('login').focus(); }

Ура! так работает.

Еще вопросик - почему нужно обязательно использовать конструкцию (или как она там называется правильно) function(){} ???
Просто, если пишу
Код
window.onload = $('login').focus();

то в ИЕ работает, а в Мозилле нет.

Какая задача у этой function(){} ?

PM MAIL   Вверх
Exception
Дата 15.8.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: нет
Всего: 186



Тут вот в чём дело. Когда ты пишешь
Код
function someFunction () {
}
window.onload = someFunction;

То свойству onload присваивается функция someFunction, и, когда нужно будет, браузер вызовет её примерно так:
Код
window.onload.call ();

Более короткая форма этой записи -- то, что мы уже видели выше:
Код
window.onload = function () {
}

Здесь мы определяем безымянную функцию прямо при присваивании. Разницы, по сути, никакой -- это как разница между
Код
var i = 5
this.someProperty = i;
-и-
Код
this.someProperty = 5;


Код, который ты написала, абсолютно некорректен. Ты присваиваешь onload не функцию, а то, что возвращает метод focus. Почувствуй разницу:
Код
function someFunction () {
}
window.onload = someFunction; // так правильно
// window.onload = someFunction ();
// Сейчас мы присвоили бы свойству onload не функцию, а возвращаемый ей результат, то бишь null!

Само собой, вполне вероятно, что метод focus выполнится (хотя, как видишь, и то не во всех браузерах) по той же причине, по которой в обоих приведённых мной случаях выполнится функция someFunction. Тем не менее, она будет выполняться не тогда, когда срабатывает window.onload, а когда начинает выполняться этот кусок кода. В общем, правильным вариантом остаётся
Код
window.onload = function () { $ ("login").focus () }

PM   Вверх
artuska
Дата 15.8.2007, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 5.5.2007

Репутация: нет
Всего: нет



Ок, спасибо за разъяснение. Понял абсолютно все. Особенно это (комментарии) помогло:
Код

function someFunction () {
}
window.onload = someFunction; // так правильно
// window.onload = someFunction ();
// Сейчас мы присвоили бы свойству onload не функцию, а возвращаемый ей результат, то бишь null!

Прямо в точку.

Да-да, я и использую сейчас именно window.onload = function () { $ ("login").focus () }, а про window.onload = $('login').focus(); - эт я просто спросил.

ЗЫ: если что, я мужского пола. У логина окончание "а", но он происходит от слова Артур, а уменьшительно-ласкательное - Артушка. )))

Вообщем, тема может быть закрыта. Exception - отдельное спасибо (плюсы пока ставить немогу :( ).
PM MAIL   Вверх
Exception
Дата 15.8.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: нет
Всего: 186



Не за что smile .
З.Ы. Привык на окончание ника смотреть, вот и спутал, сорри smile .
PM   Вверх
Avb
Дата 17.8.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 5.7.2006

Репутация: 5
Всего: 13



Цитата(artuska @  14.8.2007,  17:02 Найти цитируемый пост)
Как это сделать через Prototype?


Event.observe(window, "load", someFunction, false);

Начиная с версии 1.6.0_rc0 есть кроссбраузерная имплементация события DOMContentLoaded.
Использование этого события:

document.observe("contentloaded", someFunction);
PM MAIL   Вверх
Esco
Дата 28.8.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 20.7.2007

Репутация: нет
Всего: нет



В продолжении темы..
А как при использовании Ajax.Updater выводить надпись или картинку "...загружается"?
PM MAIL   Вверх
Exception
Дата 29.8.2007, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: нет
Всего: 186



Модератор: Пожалуйста, один топик - один вопрос.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.