Javascript没有使用onload事件

时间:2012-12-16 08:24:29

标签: javascript

我正在处理的代码就是这个 -

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

当我将代码与onload标记中的body事件一起使用时,代码可以正常运行。

但是我想在加载页面时使用它。所以我使用了以下代码 -

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

但是这段代码不起作用。请帮忙。

1 个答案:

答案 0 :(得分:3)

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

相反,请将代码放在文档 end script标记中,就在结束</body>标记之前。这样,您尝试使用的元素就会存在。

更多: