首页 文章

JavaScript DOM API在哪里记录? [关闭]

提问于
浏览
30

我是一名C / C程序员,我目前正在玩一些Javascript代码,而且我在查找文档的位置时遇到问题,浏览器中提供的标准Javascript库 .

具体来说,我在 HTMLImageElement 上设置 onload 回调函数,使用 new Image() 创建 . 我还想阅读 src 属性,因为它具有非标准行为 - 当分配此属性时,将重新加载图像 .

Mozilla在这里有各种属性的骨架文档:https://developer.mozilla.org/en/DOM/Image这里没有文档,只有属性列表 . 未提及 onload 属性 . 列出了 src 属性,但没有相关文档 .

MSDN有更好的文档:http://msdn.microsoft.com/en-us/library/cc197055(VS.85).aspx .

我的问题是'where are the standard docs'? Image() 是全局变量,还是 window 属性的全局对象?谁为 windowdocument 编写了API?是否有标准,或者每个浏览器是否只是相互复制?

5 回答

  • 3

    对于新手来说,这将有助于理解您正在使用的内容并分离以下概念:

    • Javascript(用于访问DOM的语言,可以使用其他脚本语言),

    • HTML或XML文档(构成网页基础的标记)

    • 和DOM(用作API的文档模型,允许您操作文档的结构和内容) .

    http://css-tricks.com/dom/

    它还链接到这些信息性文件:

    W3C:What is the Document Object Model?
    MDN:Introduction - Document Object Model
    维基百科:Document Object Model

    了解DOM在历史背景下的开发方式也有助于理解其结构以及如何使用它,这也包含在上述链接中 .

  • 39

    DOM实际上是JavaScript的一个独立之处 . 可以从其他语言访问DOM,例如IE中的VBScript . Java,Python,PHP等通用编程语言都有自己的非基于浏览器的DOM库 .

    可以在DOM Core中找到适用于HTML和常规XML文档的基本DOM操作; HTML文档获得DOM HTML中定义的额外方法 . 这些是W3定义的最新“支持级别”;并非所有浏览器都支持DOM Level 3 Core中的所有内容 . 但DOM Level 1 Core非常稳固 .

    令人困惑的是,DOM HTML已经进一步发展,但不是在自己的DOM规范中 . 相反,它是HTML5的一部分 . 这标准化了许多已经在浏览器中广泛支持的扩展,例如 innerHTML ,并添加了一些尚未广泛实现的东西(并且可能在文档标准化之前进行更改) .

    DOM只是文档对象模型:它指定了 document 对象中的内容 . 它没有指定其他浏览器功能,例如 window 的内容 . 浏览器对象模型(BOM)以前是非标准化的; HTML5正在努力正确地记录它 .

    HTML5还指定了之前未标准化的浏览器对象模型(BOM)部分 . 像 window 这样没有直接连接到 document 内容的东西 .

    所有这一切的结果是,没有一个文档可以告诉您有关Web脚本中可用的方法和属性的所有内容 . 有一天,DOM Core和HTML5将覆盖所有这些,但今天HTML5包含了许多你不能依赖的内容,即使按标准文档标准也不是最易读的指南 . 所以,是的,我担心你将不得不继续检查MDC和MSDN的流行支持 .

    'Image'是全局变量,还是全局对象'window'的属性?

    _55416_由HTML5指定为 window 对象的成员,作为全局上下文,它允许您将其称为 Image ...这与全局变量不完全相同,但它足够接近最 .

    它是一个构造函数,它返回一个实现 HTMLImageElement 接口的DOM对象(来自DOM Level 1 HTML,在HTML5中扩展) . 它最初是作为预加载图像的机制在Netscape 3.0中引入的;可以从 document.images 访问已创建的图像以更改其 src . 今天 new Image()document.createElement('img') 没有任何不同 .

    我还想阅读'src'属性,因为它具有非标准行为 - 当分配此属性时,将重新加载图像 .

    那么图像不会被重新加载,但它可能导致 load 事件在某些浏览器上被触发 . 不幸的是,这不是标准化的(据我所知,甚至在HTML5中也是如此) . IE,Firefox和Opera在每个 src 集合上激活 load (即使 src 未更改),而WebKit(Chrome / Safari)仅在初始图像加载时触发它 .

    这就是为什么有些网站有不同浏览器行为的大表,以及为什么我们仍然需要在不同的浏览器上进行主动测试 .

  • 3

    一世有时使用javascriptkit,我发现它非常有用 .

  • 2

    我想这个标准是由W3C编写的 .

    http://www.w3.org/TR/REC-DOM-Level-1/

    您也可以找到DOM Level 2和3的标准;)

  • 9

    新的最爱:http://devdocs.io/dom/(Devdocs.io一般来说很多很多参考资料都很棒)

    (更老)我真的很喜欢这个DOM参考:http://krook.org/jsdom/

相关问题