Работа 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;">
и все работает как надо.
Но. Хочется понять в чем дело. Кто может подсказать?
|