【问题标题】:Is it better to use <body onEvent=""> or <script>window.onevent=function(){}?</script> [duplicate]使用 <body onEvent=""> 或 <script>window.onevent=function(){} 更好吗?</script> [重复]
【发布时间】:2014-06-13 17:27:19
【问题描述】:

我试过谷歌搜索,但无法表达我的要求。

似乎有不同的方式来触发事件,我想知道它们之间是否有区别。

在路上例如:

window.onload=function(){headerAdjustWidth();thumbsArrange();checkHash();}
window.onscroll=function(){windowScrollStore();}
window.onresize=function(){headerAdjustWidth();thumbsArrange();windowScrollAdjust();showExpanded(false);}
window.onkeydown=function(){checkKeyboard();}

另一种方法是

<body onKeyDown="checkKeyboard();" onLoad="headerAdjustWidth();thumbsArrange();checkHash();" onScroll="windowScrollStore();" onResize="headerAdjustWidth();thumbsArrange();windowScrollAdjust();showExpanded(false);">

到目前为止,每种方法有什么优点/缺点吗?

另一件事是关于 onload 函数,有什么理由我应该/不应该把它们直接放在

<script type="text/javascript">
  headerAdjustWidth();
  thumbsArrange();
  checkHash();
</script>

最后,有什么理由我应该做 window.onscroll=function(){windowScrollStore();} 而不是 window.onscroll=windowScrollStore?

【问题讨论】:

  • 使用onload&lt;script&gt; 标签之间的主要区别之一是,在完全接收到图像等所有资产之前,不会触发此事件。你也可以有一个onload 事件处理程序,所以如果另一段JavaScript 决定使用onload,你的代码将会被吹走。这也是很多 JS 框架提供替代事件(例如 jQuery.ready())的原因之一。
  • @PaoloMoretti 谢谢,我已经将它全部放在

标签: javascript html events onload


【解决方案1】:

在我看来,最好不要在 HTML 中包含对 javascript 的调用,因为这会使几个构建步骤变得复杂,例如代码的 OFFUSCATION。

我强烈建议使用该解决方案将 javascript 保留在 javascript 中。

关于 onload 函数,如上文所述,我在脚本上运行,因为它简化了构建过程。

【讨论】:

    猜你喜欢
    • 2011-05-13
    • 2016-08-06
    • 2012-03-21
    • 2018-01-27
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 2013-06-16
    • 2012-10-15
    相关资源
    最近更新 更多