我是一名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
属性的全局对象?谁为 window
和 document
编写了API?是否有标准,或者每个浏览器是否只是相互复制?
5 回答
对于新手来说,这将有助于理解您正在使用的内容并分离以下概念:
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在历史背景下的开发方式也有助于理解其结构以及如何使用它,这也包含在上述链接中 .
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的流行支持 .
_55416_由HTML5指定为
window
对象的成员,作为全局上下文,它允许您将其称为Image
...这与全局变量不完全相同,但它足够接近最 .它是一个构造函数,它返回一个实现
HTMLImageElement
接口的DOM对象(来自DOM Level 1 HTML,在HTML5中扩展) . 它最初是作为预加载图像的机制在Netscape 3.0中引入的;可以从document.images
访问已创建的图像以更改其src
. 今天new Image()
与document.createElement('img')
没有任何不同 .那么图像不会被重新加载,但它可能导致
load
事件在某些浏览器上被触发 . 不幸的是,这不是标准化的(据我所知,甚至在HTML5中也是如此) . IE,Firefox和Opera在每个src
集合上激活load
(即使src
未更改),而WebKit(Chrome / Safari)仅在初始图像加载时触发它 .这就是为什么有些网站有不同浏览器行为的大表,以及为什么我们仍然需要在不同的浏览器上进行主动测试 .
一世有时使用javascriptkit,我发现它非常有用 .
我想这个标准是由W3C编写的 .
http://www.w3.org/TR/REC-DOM-Level-1/
您也可以找到DOM Level 2和3的标准;)
新的最爱:http://devdocs.io/dom/(Devdocs.io一般来说很多很多参考资料都很棒)
(更老)我真的很喜欢这个DOM参考:http://krook.org/jsdom/