★JS中调用DOM?
JS只是一门语言,功能取决于运行环境。操作DOM是JS跑在浏览器这个Context下的其中一部分API。浏览器还有BOM接口用来操作非DOM的接口。
当JS跑在其他Context下就是其他功能了,比如Node.js中就拥有了文件操作等一大堆系统API。
★DOM与BOM?
链接:DOM与BOM
区别:DOM描述了处理网页内容的方法和接口,BOM描述了与浏览器进行交互的方法和接口。
具体:在 DOM 中,html页面结构解析成一个文档对象,提供一个接口API,以供操作所有的节点。文档中的各个组件(component),可以通过object.attribute 这种形式来访问。一个DOM 会有一个根对象,这个对象通常就是document。而BOM 根对象是当前浏览器窗口对象,window对象。document也是挂在window对象下。所以BOM除了可以访问文档中的组件之外,还可以访问浏览器的组件,比如问题描述中的navigator(导航条)、history(历史记录)等等。BOM的核心是window,而window对象又具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是一个Global(全局)对象。这意味着在网页中定义的任何对象,变量和函数,都以window作为其global对象。
★ javascript 有三部分构成,ECMAScript,DOM和BOM,根据宿主(浏览器)的不同,具体的表现形式也不尽相同,ie和其他的浏览器风格迥异。
1. DOM 是 W3C 的标准; [所有浏览器公共遵守的标准]
2. BOM 是 各个浏览器厂商根据 DOM在各自浏览器上的实现;[表现为不同浏 览器定义有差别,实现方式不同]
3. window 是 BOM 对象,而非 js 对象;JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。
DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API)。
BOM 主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看作BOM的一部分。这些扩展包括:弹出新的浏览器窗口;移动、关闭浏览器窗口以及调整窗口大小;提供 Web 浏览器详细信息的定位对象;提供用户屏幕分辨率详细信息的屏幕对象;对 cookie 的支持;IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaScript 实例化;ActiveX 对象。
javacsript是通过访问BOM(Browser Object Model)对象来访问、控制、修改客户端(浏览器),由于BOM的window包含了document,window对象的属性和方法是直接可以使用而且被感知的,因此可以直接使用window对象的document属性,通过document属性就可以访问、检索、修改XHTML文档内容与结构。因为document对象又是DOM(Document Object Model)模型的根节点。可以说,BOM包含了DOM(对象),浏览器提供出来给予访问的是BOM对象,从BOM对象再访问到DOM对象,从而js可以操作浏览器以及浏览器读取到的文档。