Javascript没有';t不使用onload事件

Javascript没有';t不使用onload事件,javascript,Javascript,我正在研究的代码是- var winW; if (document.body && document.body.offsetWidth) { winW = document.body.offsetWidth; } if (document.compatMode=='CSS1Compat' && document.documentElement && document.documentElement.offsetWidth ) {

我正在研究的代码是-

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

但是这个代码不起作用。请帮助。

我猜,当您删除
onload
时,您将脚本留在了文档的
标题
部分。您尝试使用的元素(
document.body
,您的
wblogo
元素)尚不存在,因此代码无法与它们交互。当您使用
onload
时,您的代码不是立即运行的,而是在加载所有图像等之后,在页面加载周期的后期运行非常,因此元素确实存在

相反,将您的代码放在文档的末尾的
脚本
标记中,就在关闭
标记之前。这样,您尝试使用的元素将存在

更多:


我的猜测是,当您删除
onload
时,您将脚本留在了文档的
标题部分。您尝试使用的元素(
document.body
,您的
wblogo
元素)尚不存在,因此代码无法与它们交互。当您使用
onload
时,您的代码不是立即运行的,而是在加载所有图像等之后,在页面加载周期的后期运行非常,因此元素确实存在

相反,将您的代码放在文档的末尾的
脚本
标记中,就在关闭
标记之前。这样,您尝试使用的元素将存在

更多: