Javascript-форум (https://javascript.ru/forum/)
-   Prototype & script.aculo.us (https://javascript.ru/forum/prototype-script-aculo-us/)
-   -   Работа Event.observe (https://javascript.ru/forum/prototype-script-aculo-us/3651-rabota-event-observe.html)

Ruark 12.05.2009 18:54

Работа Event.observe
 
На странице имеется хтмл-форма авторизации. На форму подвешивается обработчик
window.onload=function()
{
Event.observe('authform', 'submit', ALogon);
}
сама функция
function ALogon()
{
new Ajax.Request
(
"/include/ajax/login.php",
{
method: 'post',
parameters: $('authform').serialize(true),
onSuccess: function(xhr)
{
var result=xhr.responseXML;
AuthSite(result);
}

}
);
Event.stop(event);
}
function AuthSite(result)
{
window.open('/', '', 'menubar=yes,status=yes,resizeable=yes,scrollbars= yes,toolbar=yes,width=1024,height=768');
}
Часть функции AuthSite я опустил как не имеющую смысловой нагрузки.
Суть - после аякс-авторизации открывается новое окно, в котором работают уже авторизованные пользователи.

С чем непонятным столкнулся.

После авторизации открывается окно, и выплевывает джаваскрипт-ошибку на строке Event.observe('authform', 'submit', ALogon);
Причем ошибка эта возникает исключительно в том случае, если window.open выполняется из процедуры. В остальных случаях, даже если window.open указать в хтмл-е как onClick на какую-то ссылку и нажать этиу ссылку - работает нормально.

Как вылечил - втупую в хтмл
<form method="post" action="/?action=auth" id="authform" onSubmit="ALogon();return false;">
и все работает как надо.

Но. Хочется понять в чем дело. Кто может подсказать?

x-yuri 12.05.2009 21:28

какая ошибка?

Ruark 14.05.2009 11:12

Требуется объект.

x-yuri 14.05.2009 12:46

максимально упрости свою страничку (но чтобы эта ошибка все еще возникала) и выложи сюда архив со всеми необходимыми файлами - посмотрим

Snowcore 30.06.2009 13:45

Когда вы пытаетесь задать Event.observe ?


Часовой пояс GMT +3, время: 20:23.