我正在帮助调试网站,有时我会收到此错误: 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;
}
我不知道解决这个问题...... 提前谢谢。
答案 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;