当使用过程样式时,代码似乎是在元素的宽度尺寸错误的情况下执行的(我怀疑代码是在元素创建完成之前执行的),当我刷新页面时一切都很好。
问题:
<html>
<head></head>
<body>
<div id="parent">
</div>
<script language="javascript" type="text/javascript">
create_object(); // Creates an element and puts it inside div parent
</script>
</body>
</html>
解决方案:
<html>
<head>
<script language="javascript" type="text/javascript">
window.onload = function(){
create_object(); // Creates an element and puts it inside div parent
}
</script>
</head>
<body>
<div id="parent">
</div>
</body>
</html>
有什么区别? window.onload当然等待页面加载,但因为它位于元素之后..不应该没问题吗?
页面上没有执行其他java脚本。
答案 0 :(得分:1)
window.onload
在调用其回调之前等待加载所有页面资源(例如图像和样式表)。在你的第一个例子中,DOM元素都将存在(因为你的代码在解析之后的事物的末尾执行),但是像图像这样的外部资源可能还没有被加载,因此最终的布局可能还没有实现了所有可能还没有最终的尺寸/布局。
答案 1 :(得分:0)
window.onload。如果你在没有这个回调的情况下加载你的脚本,如果你将图像或样式表加载到这个集合中你的div宽度可能是错误的...