Требуется объект ошибки Javascript - PullRequest
0 голосов
/ 21 декабря 2011

Я помогаю отлаживать веб-сайт, и иногда я получаю эту ошибку: Требуется объект в строке 45 CWS.js 3

// Track cursor position
var CWS_curPosX, CWS_curPosY;
document.onmousemove = CWS_MouseMove;

function CWS_MouseMove(evt)
{

if(window.Event)
{
    if(evt && evt.pageX)
    {
        CWS_curPosX = evt.pageX;
        CWS_curPosY = evt.pageY; 
    }
}
else
{
    CWS_curPosX = event.clientX + document.body.scrollLeft; // line 45
    CWS_curPosY = event.clientY + document.body.scrollTop;
}

Я понятия не имею, чтобы решить это ... Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

В вашем коде есть пара важных проблем, в первую очередь использование window.Event - это условие if(...) всегда будет оценивать false, поскольку ни один браузер не поддерживает это свойство для объекта window.На самом деле свойство имеет нижний регистр e в IE.

Так что эта конструкция часто используется и выглядит аналогично вашей:

function someEventHandler(evt){
   if(window.event){ // Note lower case 'e' in 'event'
       // browser is IE, read properties of the event from window.event
   }
   else{
       // browser is probably some flavour of Mozilla, use the passed-in 'evt' 
       // parameter to read properties of the event
   }
}

Прочтите эту ссылку ( объект события в различных браузерах ) для получения дополнительной информации.

Это различие между браузерами является одной из многих причин, по которой многие люди склонны использовать такую ​​среду, как jQuery, которая упрощает этот код обработки событий в единый метод чтения свойств события.

0 голосов
/ 21 декабря 2011

заменить событие на evt в 2 строки
CWS_curPosX = evt.clientX + document.body.scrollLeft;
CWS_curPosY = evt.clientY + document.body.scrollTop;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...