需要Javascript错误对象

时间:2011-12-21 12:07:16

标签: javascript web

我正在帮助调试网站,有时我会收到此错误: CWS.js第45行第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 个答案:

答案 0 :(得分:1)

您的代码有几个关键因素,主要是您使用window.Event - 此if(...)条件将始终评估为false,因为没有浏览器支持window对象上的此属性。实际上,该属性在IE中具有小写e

所以经常使用这个结构,看起来与你的相似:

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
   }
}

阅读此链接(event object in different browsers)了解更多信息。

这种跨浏览器的差异是很多人倾向于使用jQuery这样的框架的原因之一,它将这种事件处理代码简化为一种读取事件属性的统一方法。

答案 1 :(得分:0)

将事件替换为2行中的evt CWS_curPosX = evt.clientX + document.body.scrollLeft;
CWS_curPosY = evt.clientY + document.body.scrollTop;