2011-12-21 80 views
0

我幫助調試的網站,有時我得到這個錯誤:在CWS.js需要 對象行45字符3JavaScript錯誤對象所需

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

我也沒辦法解決這個... 在此先感謝。

回答

1

有幾個關鍵的所有主題與你的代碼,主要介紹如何使用window.Event - 這if(...)條件將始終評估爲假,因爲沒有瀏覽器支持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之類的框架的原因之一,它將事件處理代碼簡化爲閱讀事件屬性的統一方法。

+0

感謝您的快速響應,我現在就試試,我等待測試人員的反饋。 – Gun 2011-12-21 13:04:20

+0

一個更簡單的方法是'event = event || window.event' – 2013-01-22 18:38:13

0

將事件替換爲2行中的evt
CWS_curPosX = evt.clientX + document.body.scrollLeft;
CWS_curPosY = evt.clientY + document.body.scrollTop;

+0

如果第一條評論不起作用,我會嘗試您的回覆,謝謝您的快速回復! – Gun 2011-12-21 13:05:13