JavaScript DOM API在哪里记录?

时间:2010-09-22 11:10:05

标签: javascript api dom browser documentation

我是一名C / C ++程序员,目前我正在使用一些Javascript代码,而且我在查找浏览器中可用的标准Javascript库的文档时遇到了问题。

具体来说,我在使用onload创建的HTMLImageElement上设置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

我的问题是'标准文档在哪里'? Image()是全局变量,还是window全局对象的属性?谁为windowdocument撰写了API?是否有标准,或者每个浏览器是否只是相互复制?

5 个答案:

答案 0 :(得分: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'的属性?

HTML5将{p> Image指定为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在每个load集合上激活src(即使src未更改),而WebKit(Chrome / Safari)仅在初始图像加载时触发它。 / p>

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

答案 1 :(得分:11)

新收藏:http://devdocs.io/dom/ (Devdocs.io一般来说很多参考资料非常棒)

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

答案 2 :(得分:4)

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

  • 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在历史背景下的开发方式也有助于理解其结构以及如何使用它,这也包含在上述链接中。

答案 3 :(得分:3)

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

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

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

答案 4 :(得分:2)

我有时使用javascriptkit,我发现它非常有用。