[英]My onload listener doesn't seem to be working
我知道我在這里遺漏了一些東西,但是我的頁面無法正常工作...
我有一個簡單的init()
函數綁定到window.onload
。 init()
正在觸發,但是我收到一個奇怪的錯誤,例如它無法讀取DOM元素本身。 我可以直接進入Firebug並運行init();
從控制台,這確實可以正常工作。 看來我沒有使用正確的onload
監聽器。 有更好的嗎? 另外,也許這是由於我對document.getElementsByClassName()
。
這是錯誤(然后將init()
放入控制台):
這是我的相關代碼:
... // There is more code, I just didnt include it.
window.addEventListener("onload", init(), false);
function init(){
populateText();
populateLinks();
populateIcons();
}
function populateText(){
var texts = document.getElementsByClassName("text");
for (i = 0; i < data.links.length; i++) {
texts[i].innerHTML = data.links[i].text;
}
}
function populateLinks(){
var links = document.getElementsByClassName("link");
for (i = 0; i < data.links.length; i++) {
links[i].href = data.links[i].link;
}
}
function populateIcons(){
var icons = document.getElementsByClassName("icon");
for (i = data.links.length; i > 0; i--) {
icons[(data.links.length-i)].src = "screens/screen ("+i+").png";
}
}
</script>
</head>
<body>
<div id='iconLinks'>
<ul>
<li>
<a class="link" href="" target="_blank">
<div class="text"></div>
<img class="icon" src=""/>
</a>
</li>
<li>
<a class="link" href="" target="_blank">
<div class="text"></div>
<img class="icon" src=""/>
</a>
</li>
<li>
<a class="link" href="" target="_blank">
<div class="text"></div>
<img class="icon" src=""/>
</a>
</li>
<li>
<a class="link" href="" target="_blank">
<div class="text"></div>
<img class="icon" src=""/>
</a>
</li>
<li>
<a class="link" href="" target="_blank">
<div class="text"></div>
<img class="icon" src=""/>
</a>
</li>
... // There is more code, I just didnt include it.
您需要將函數引用傳遞給addEventListener()
。 同樣,事件名稱是load
,而不是onload
。 因此,調用應如下所示:
window.addEventListener("load", init, false);
(您也可以省略false
作為第三個參數,因為這是默認值。)
在您的情況下,首先調用init()
然后將其返回值( undefined
)傳遞給onload
事件的處理程序。
如果您想加載函數直到整個DOM加載完成:
JS:
<script>
window.onload = function(){
populateText();
populateLinks();
populateIcons();
}
</script>
JQuery的:
$(window).on("load", function() {
populateText();
populateLinks();
populateIcons();
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.