Mul*_*ner 0 html javascript onload getelementbyid
我在这里有点困惑.我认为指定的函数在window.onload页面加载之前没有执行.尽管如此,我在下面的代码中得到一个错误(继承人的jsfiddle版本):
<script>
function updateImage(url){
document.getElementById("foo").src = url;
}
window.onload = updateImage("http://dummyimage.com/100x100/000/fff.png&text=qux");
</script>
<img id="foo" alt="" src="http://dummyimage.com/100x100/000/fff.png&text=bar" />
Run Code Online (Sandbox Code Playgroud)
它给了我:
Error: document.getElementById("foo") is null
Run Code Online (Sandbox Code Playgroud)
将图像移到脚本上方时,一切正常.
window.onload期望是一个函数 - 它将在页面加载时调用.但是你分配给它的不是一个功能.你分配了
updateImage("http://dummyimage.com/100x100/000/fff.png&text=qux");
Run Code Online (Sandbox Code Playgroud)
它会立即执行该updateImage函数,并且由于您return在正文中没有语句updateImage,因此返回值为undefined.因此,最后,window.onload有价值undefined.
解决方案是将该位代码更改为:
window.onload = function(){
updateImage("http://dummyimage.com/100x100/000/fff.png&text=qux");
}
Run Code Online (Sandbox Code Playgroud)
这将导致它在窗口加载时调用该函数并执行您期望的操作.