我正在执行一个外部脚本,使用<脚本>内<头>。

现在,由于脚本在页面加载之前执行,我不能访问<body>等。我想在文档被“加载”(HTML完全下载并在ram中)后执行一些JavaScript。是否有任何事件,我可以挂钩到当我的脚本执行,这将在页面加载触发?


当前回答

我发现有时在更复杂的页面上,并不是所有的元素都在时间窗口加载。Onload被触发。如果是这种情况,在函数延迟片刻之前添加setTimeout。它不是优雅的,但它是一个简单的hack渲染良好。

window.onload = function(){ doSomethingCool(); };

变得……

window.onload = function(){ setTimeout( function(){ doSomethingCool(); }, 1000); };

其他回答

看钩文件。jQuery $(document).load(…)

我可以通过这段代码捕获页面加载

<script>
console.log("logger saber");

window.onload = (event) => {
  console.log('page is fully loaded');
document.getElementById("tafahomNameId_78ec7c44-beab-40de-9326-095f474519f4_$LookupField").value = 1;;
};

</script>
<script type="text/javascript">
  function downloadJSAtOnload() {
   var element = document.createElement("script");
   element.src = "defer.js";
   document.body.appendChild(element);
  }
  if (window.addEventListener)
   window.addEventListener("load", downloadJSAtOnload, false);
  else if (window.attachEvent)
   window.attachEvent("onload", downloadJSAtOnload);
  else window.onload = downloadJSAtOnload;
</script>

http://www.feedthebot.com/pagespeed/defer-loading-javascript.html

Working Fiddle on <body onload="myFunction()" >

<!DOCTYPE html>
<html>
 <head>
  <script type="text/javascript">
   function myFunction(){
    alert("Page is loaded");
   }
  </script>
 </head>

 <body onload="myFunction()">
  <h1>Hello World!</h1>
 </body>    
</html>

< script type = " text / javascript " > 美元(窗口)。绑定("load", function() { // javascript事件 }); > < /脚本