window.onload在Javascript中的位置

window.onload在Javascript中的位置,javascript,html,Javascript,Html,我有这样的javascript代码 <script type="text/javascript"> window.onload=myFunction; </script> window.onload=myFunction; 在标记中使用上述代码段与之前有什么区别吗 标记,因为我想在页面加载后调用我的函数。绑定到窗口。当加载事件触发时,onload将始终运行您的函数。这仅在页面中的所有内容(包括图像等)完成加载后触发。如果您想在DOM完成加载时但在其他所有内容之前运行

我有这样的javascript代码

<script type="text/javascript">
window.onload=myFunction;
</script>

window.onload=myFunction;
标记中使用上述代码段与之前有什么区别吗
标记,因为我想在页面加载后调用我的函数。

绑定到
窗口。当
加载事件触发时,onload
将始终运行您的函数。这仅在页面中的所有内容(包括图像等)完成加载后触发。如果您想在DOM完成加载时但在其他所有内容之前运行函数,则可以绑定到
DOMContentLoaded
事件或使用类似jQuery的库(例如
$(function(){myFunction()};


将函数放在
末尾的好处是,从理论上讲,这意味着您的其余内容已经加载,您不需要将函数绑定到
加载事件。这有时会起作用,但取决于具体情况。

否,您将其放在什么地方无关紧要-放在文档中的任何位置,并在加载文档和所有外部资源(图像、脚本等)时触发


因为
onload
会在所有外部资源之后触发,所以人们通常希望使用
domcontentload
来代替,它会在HTML DOM就绪时触发。这将使页面更具响应性。

基本上没有实际区别,但我建议

  • 要将代码放在底部,由于需要使用脚本(阻塞呈现标记),最好将其放在文档末尾

  • 为了避免像这样的破坏性赋值:编写
    window.onload=myFunction
    您可以将以前的其他赋值破坏到
    window.onload
    事件(如果有)中,所以最好像这样

    (function() {
       var previousOnLoadIfAny = window.onload;
       window.onload = function() {  
          if (typeof previousOnLoadIfAny === 'function') {
             previousOnLoadIfAny();
          }
          yourfunction();
       }
    }());
    

  • “在标签内和标签前”-你这是什么意思?“tag”指的是@Prabhavith(在tag中和tag之前)是什么意思?另外,在加载所有图像和外部资源后,您想调用脚本吗?或者在HTML准备好之后—您希望在其中使用
    DOMContentLoaded
    。我猜他会考虑
    当控件在脚本开始时找到window.onload时会发生什么情况绑定到
    window.onload的函数在初始加载期间找到的任何地方都会在内容完成后被激发已完成加载,无论绑定发生在何处(在
    中)。