如何调用在页面加载功能JS?(How to call function on page load i

2019-10-16 16:55发布

我有一个js函数看起来像这样

 function showProducts(){
    document.getElementById("shopList").innerHTML = "<ul><li>Test Text</li></ul>";
 }

这是一个已经表现出我的产品阵列功能。 我做了与DIV id="shopList"在我的html页面

        <div id="shopList">
        </div>

但我怎么能调用函数来显示我在div的文本? 它的工作原理,当我用这个作为我的身体标记,但我不能写任何的js代码在我的HTML或onload事件或使用onclick。 我试图与听众做了近4小时,我仍然没有找到一个解决方案。 可能有人帮助我吗?

     <body onload="showProducts()">

Answer 1:

使用纯JavaScript:

window.onload = function(){

};

(要么

function doLoad() {
    //Do stuff on load
}

window.onload = doLoad;

使用jQuery

$(document).ready(function(){   

}); 


Answer 2:

这不是很难的听众。 这里是一个解决方案(未跨浏览器):

document.addEventListener("DOMContentLoaded", showProducts);


Answer 3:

真的,分配给onload只是速记与听众做。 这应该工作,虽然我没有测试它。

window.addEventListener("load", showProducts);


Answer 4:

使用jQuery你可以做这样的事情:

$(document).ready(function(){   
   showProducts();
}); 

它等待,直到该页面加载,然后执行相应的功能。 你只要把它放在一个外部.js文件并将其包含在你的页面。

(对于人downvoting这个答案,因为它是jQuery的,他说他不能使用的onload(),所以我刚才提到的这个选项。)



Answer 5:

只需将底部的脚本:

<body>
    ...
    <script type="text/javascript">
        myFunction();
    </script>
</body>


Answer 6:

约翰Resig的简化版本,从“临JavaScript的技术”。 这取决于的addEvent。

var ready = ( function () {
  function ready( f ) {
  if( ready.done ) return f();

  if( ready.timer ) {
    ready.ready.push(f);
  } else {
    addEvent( window, "load", isDOMReady );
    ready.ready = [ f ];
    ready.timer = setInterval(isDOMReady, 13);
  }
};

function isDOMReady() {
   if( ready.done ) return false;

   if( document && document.getElementsByTagName && document.getElementById && document.body ) {
     clearInterval( ready.timer );
     ready.timer = null;
     for( var i = 0; i < ready.ready.length; i++ ) {
       ready.ready[i]();
     }
     ready.ready = null;
     ready.done = true;
   }
}

  return ready;
})();

在window.onload会的工作,但它是一个不同的野兽。 jQuery的$(文件)。就绪()是在大多数情况下要复杂得多好。



Answer 7:

鉴于你“中的HTML没有脚本”和“无onload事件或听众的onclick”的标准,就可以把功能到一个单独的文件,并在页面底部的脚本元素运行:

<script type="text/javascript" src="showproducts.js"></script>

所以现在你在页面并没有听众没有脚本。 当元素被添加到DOM,所以只要是相关的DIV之后,你没事的代码会被执行。

顺便说一句,你甚至不需要一个功能,你可以把语句从函数体到文件中。



文章来源: How to call function on page load in JS?