2012-12-16 107 views
0

,我的工作中的代碼是這個 -JavaScript不不使用onload事件

var winW; 
if (document.body && document.body.offsetWidth) { 
winW = document.body.offsetWidth; 
} 
if (document.compatMode=='CSS1Compat' && 
    document.documentElement && 
    document.documentElement.offsetWidth) { 
winW = document.documentElement.offsetWidth; 
} 
if (window.innerWidth && window.innerHeight) { 
winW = window.innerWidth; 
} 
if (winW = 1265) { 
function setPosition() 
{ 
document.getElementById("wblogo").style.left="1050px"; 
} 
} 

代碼工作完全當我在body標籤onload事件中使用它。

但是我想在頁面加載時使用它。所以我用下面的代碼 -

var winW; 
if (document.body && document.body.offsetWidth) { 
winW = document.body.offsetWidth; 
} 
if (document.compatMode=='CSS1Compat' && 
    document.documentElement && 
    document.documentElement.offsetWidth) { 
winW = document.documentElement.offsetWidth; 
} 
if (window.innerWidth && window.innerHeight) { 
winW = window.innerWidth; 
} 
if (winW = 1265) { 
document.getElementById("wblogo").style.left="1050px"; 
} 

但是這段代碼不起作用。請幫忙。

回答

3

我的猜測是,當您刪除onload時,您將腳本留在文檔的head部分。您嘗試使用的元素(document.body,您的wblogo元素)尚不存在,因此代碼無法與它們交互。當您使用onload時,您的代碼不會立即運行,而是在加載所有圖像等後加載的頁面加載週期後期非常,因此元素確實存在。

相反,把你的代碼在script標籤在文檔的,剛剛閉幕</body>標記之前。這樣,您嘗試使用的元素將存在。

更多:

+0

感謝名單。這幫助了我! – sdnr1

+0

@ sdnr1:好價錢! –