Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的onload侦听器没有';我好像不工作_Javascript_Html_Dom_Firebug_Event Listener - Fatal编程技术网

Javascript 我的onload侦听器没有';我好像不工作

Javascript 我的onload侦听器没有';我好像不工作,javascript,html,dom,firebug,event-listener,Javascript,Html,Dom,Firebug,Event Listener,我知道我在这里遗漏了一些东西,但我的页面工作不正常 我有一个简单的init()函数绑定到window.onloadinit()正在启动,但我遇到了一个奇怪的错误,比如它无法读取DOM元素本身。我可以跳进Firebug并运行init(),并且工作正常。似乎我没有使用正确的onload侦听器。有更好的吗?另外,这可能是由于我使用了document.getElementsByClassName() 下面是错误(然后我将init()放入控制台): init()“> 这是我的相关代码: ... // Th

我知道我在这里遗漏了一些东西,但我的页面工作不正常

我有一个简单的
init()
函数绑定到
window.onload
init()
正在启动,但我遇到了一个奇怪的错误,比如它无法读取DOM元素本身。我可以跳进Firebug并运行
init(),并且工作正常。似乎我没有使用正确的
onload
侦听器。有更好的吗?另外,这可能是由于我使用了
document.getElementsByClassName()

下面是错误(然后我将
init()
放入控制台): 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(“onload”,init(),false);
函数init(){
populateText();
大众链接();
平民主义者();
}
函数populateText(){
var text=document.getElementsByClassName(“text”);
对于(i=0;i0;i--){
icons[(data.links.length-i)].src=“screens/screen(“+i+”).png”;
}
}
  • …//还有更多的代码,我只是没有包括在内。
您需要将函数引用传递给
addEventListener()
。此外,事件名称是,而不是
onload
。因此调用应如下所示:

window.addEventListener("load", init, false);
(您也可以省略
false
作为第三个参数,因为这是默认值。)


在您的情况下,首先调用
init()
,然后将其返回值(未定义的
)传递给
onload
事件的处理程序。

您需要将函数引用传递给
addEventListener()
。此外,事件名称是,而不是
onload
。因此调用应如下所示:

window.addEventListener("load", init, false);
(您也可以省略
false
作为第三个参数,因为这是默认值。)


在您的情况下,首先调用
init()
,然后将其返回值(未定义的
undefined
)传递给
onload
事件的处理程序。

如果要加载函数直到整个DOM加载完成:

JS:


如果要加载函数直到整个DOM加载完成:

JS:

$(window).on("load", function() {
  populateText();
  populateLinks();
  populateIcons();
})