【问题标题】:"onload" in <body> tag of HTML and JavaScript?HTML 和 JavaScript 的 <body> 标签中的“onload”?
【发布时间】:2023-03-28 14:31:01
【问题描述】:

我想知道“onload”是否是 HTML

标签的属性。我在翻书(用于学习 Java Script)时看到了这段代码 sn-p。
<html>
    <body onload="alert('hi')";>
      ...
    </body>
</html>

我知道

标签是 HTML 规范的一部分。对于 HTML 元素,我们可以拥有属性。这样下去,是否意味着onload是的属性?还是它是 JavaScript 的一部分?这种合并怎么可能?

如果是这样,这是否也意味着最初开发 HTML 时,创建者是否认为可能需要应用一些事件驱动的东西(通过其他语言?)。

谁能帮助我理解这一点?到目前为止,我提到的这本书并没有说明我的疑问是什么,因此提出了这个问题。

【问题讨论】:

  • “如果是这样,这是否也意味着在最初开发 HTML 时,创建者是否认为可能需要应用一些事件驱动的东西(通过其他语言?)。”最初,没有,但是 HTML 规范已经修改了很多次(这就是我们有 HTML5 的原因)。随着 javascript 的开发,事件挂钩被添加到 DOM api。
  • 感谢您的回复,有道理。当您说 DOM api 时,一件小事,究竟是什么?我听说过 DOM 模型(解析器),这与您在这里所指的相同吗?如果能提供一些指点,那就太好了。

标签: javascript html


【解决方案1】:

onload 属性在加载对象时触发。 onload 最常用于&lt;body&gt; 元素中,用于在网页完全加载所有内容(包括图像、脚本文件、CSS 文件等)后执行脚本。

语法是,

<element onload="script"> 

下面这几个html标签支持like

<body>, <frame>, <img>, <link>, <script> and <style>

例子:

<img src="image.gif" onload="alert('image loaded')">

因此上面的代码在一个元素上加载,在图像加载后立即显示警报“图像加载”。

【讨论】:

    【解决方案2】:

    将事件处理程序附加到任何 HTML 元素的方法之一是给它一个名为 onEVENTNAME 的属性。此类属性的值是一个 Javascript 字符串,当在元素上触发事件时将执行该字符串。你几乎肯定见过像

    这样的东西
    <button onclick="doSomething()">
    

    这是同样的事情。

    Global Attributes 的 HTML 规范说 onload(以及许多其他 onXXX 属性)可以在任何 HTML 元素中使用。还有一些onXX 属性是特定于&lt;body&gt; element 的。

    &lt;body&gt; 元素在这方面唯一的特别之处在于,一些事件处理程序被分配给了window 对象。所以你的例子大致相当于:

    window.onload = function() {
        alert('hi');
    };
    

    【讨论】:

    • 补充这一点,因为 OP 似乎也在询问有关此属性的起源的问题:onload HTML规范的一部分:请参阅@987654323 @和w3.org/TR/html5/webappapis.html#event-handlers
    • 它是 HTML 和 DOM 的一部分。 JavaScript 仅在图片中,因为它是可在浏览器中使用的默认语言。实际上,多年来,您可以在 IE 中使用 VBScript :)。
    • @Barmar:所以在严格的上下文中,onload 是 元素的一个属性?
    • 当然。 HTML 的所有foo=bar 部分都是属性。还会是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    相关资源
    最近更新 更多