Программирование > JavaScript & JScript
Ошибка:event is not defined //Error
SteelRat:
Чего-то не сходится с этим вписыванием...
Что надо, чтобы \'налету генерить\', чтобы document.write работал правильно?
SteelRat:
Вообщем, я сделал а-ля dhtmlcentral.
Теперь проблема в том, чтоб закапчерить координаты события в NN6-7.
Я обращаюсь вроде правильно.(Во-первых взято с рабочего dhtmlcentral, во-вторых проверено по 2м книгам. IE- работает OK, NN6-7 нет. Тестю я на Браузере Galeon, который работает на движке Mozilla 1.0.0, из которой компилировали NN7 :-))
Исходник, перекодированный в win-1251 висит на http://bonch.spb.ru/script.tar.gz
Если надо, запакую в др. формат.
Винрар его открывает 100%.
PS:
Часть записи в слой сохранилась - lib_writeIt(text).
Для записи в ХТМЛ файле был создан
и init функция в ХТМЛ документе имела вид:
function init(){
oDivTemp=new lib_obj(\'DivTemp\');
CreateMenuStructure(\'Menu\',2);
}
document.onload=init();
А в menu2.js
в функции addMenu_Item(...)
вместо document.write(str);
было oDivTemp.writeIt(str);
На этом отличия от текущего заканчиваются.
mike:
А откуда берется evt у тебя в коде?
SteelRat:
Вообще-то я сам сейчас с этим разбираюсь.
В книге написано для ns4 evt.pageX, на dhtmlcentral e.pageX.
Я думал, что в книге дана правильная комбинация пути к событию, там насчёт того, что это ссылка - молчёк, а на dhtmlcentral - для совместимости.
Теперь, я впилил, что это ссылка на обьект, на котором произошло событие.
Теперь проблема в том, чтобы придумать к чему обращаться. Чтобы добыть координату.
Но на это я пока осо внимание не трачу, т.к. мой браузер определяется, как ns6. Но при применении кода, не дающего браузеру гулять на evt.*:
--- Код: ---
if(bw.ns){
mouseX=evt.pageX;
mouseY=evt.pageY;
}
else if(bw.ns6){
mouseX=event.x;
mouseY=event.y;
}
else {
mouseX=event.clientX;
mouseY=event.clientY;
}
CurX=mouseX;
CurY=mouseY;
--- Конец кода ---
Браузер ругается, что:
Ошибка:event is not defined
In file:///home/steelrat/menu2.js, Line 137,
Тут уже полная непонятка. event.x - правильное обращение. Или нет?
Чего-то я совсем запутался. Попробую ещё раз перекопать книги и код.
Если вы знаете как обратиться правильно. Опишите - буду вам очень признателен.
Да, в NN:
pageX - это для ява ниже 1.2, а screenX - =1.2? Какой из них правильнее юзать?
mike:
В исходниках dhtmlcentral
e (или evt в нашем случае) передается как параметр обработчику события. Перед этим нужно указать, какие события будут обрабатываться скриптом. Пример из документации по JS для NN:
--- Код: ---
HTML>
function fun1(e) {
alert ("The window got an event of type: " + e.type + " and will call routeEvent.");
window.routeEvent(e); alert ("The window returned from routeEvent.");
return true;
}
function fun2(e) {
alert ("The document got an event of type: " + e.type);
return false;
}
function setWindowCapture() { window.captureEvents(Event.CLICK);}
function releaseWindowCapture() { window.releaseEvents(Event.CLICK);}
function setDocCapture() { document.captureEvents(Event.CLICK);}
function releaseDocCapture() { document.releaseEvents(Event.CLICK);}
window.onclick=fun1;document.onclick=fun2;
...
--- Конец кода ---
Навигация
Перейти к полной версии