了解Web API DOM接口

时间:2016-09-05 18:03:20

标签: javascript dom asp.net-web-api

我试图了解有关Web API的更多信息。阅读它们我发现在各种各样的Web API中有DocumentObjectModel API。阅读DOM规范,我找到了很多DOM接口的列表。这让我感到有些不安。在我的无知中,我认为一个API应该只包含一个接口(只有一组函数和属性),在这里我找到一个接口列表......这是我不做的第一件事。理解。

此外,我通常使用

之类的符号与DOM进行交互
document.getElementById("idname");
document.getElementByTagName("tagname");
etc ect

我看到其中一些DOM接口具有我已经知道的名称,例如" Document"或者" Window",我使用它们(就像前两行代码一样),但是我使用它们不是大写的("文档"而不是" Document")。我不明白是否有链接beetwen" document"和"文件",例如......

最后,我注意到查询全局对象(例如,在浏览器控制台中,只需键入关键字"这个")我在响应中有一个对象(我猜)包含所有属性和全局对象的函数(或方法)。其中还有一些功能在DOM接口列表中列出了相同的名称。而这只是我注意到的另一件事,我无法解释。

那么,您能帮助我更深入地了解DOM API吗?

1 个答案:

答案 0 :(得分:3)

这些东西来自javascript和DOM规范的交互。

大写字母WindowDocument是由DOMHTML规范定义的接口。

在Javascript中,当在浏览器环境中执行时,Window的实例是全局对象,Window是其原型。 documentwindow是这些接口定义的getter属性。由于窗口是global object(顶级this),因此变量名称解析在范围链中走向最终落在全局对象上,如果它在其他地方找不到它window最终解析为<global object>.window。哪个是在Window接口上定义的属性,它返回窗口实例本身,它也是全局对象。它是自我指涉的。

因此,全局对象最终具有javascript定义的属性,dom / html规范,并继承自原型也由各种规范定义。

一些原型也作为全局对象中的命名属性公开,而不仅仅是实例的原型链。这对instanceof检查和特征检测很方便。一些构造函数也暴露在外,例new Image()以与HTMLImageElement相同的方式创建document.createElement("img")的新实例。

可以通过各种构造函数或工厂(例如DOMParser)创建其他文档实例。可以通过框架,页面的开启者或衍生的子窗口访问其他窗口实例。

使用调试器查看窗口对象可能会有所帮助。