一.DOM2相对于DOM的变化
1.importNode()用于从一个文档中取得一个节点,然后将其导入到另一个文档,使其成为这个文档结构的一部分,在调用importNode()时传
入不同文档的节点则会返回一个新的节点,这个心节点的所有权归当前文档所有,它与appendChild 的区别在于后者不能够传入属于不同文档的
节点 ;它接受两个参数 一个是要复制的节点和一个表示是否复制子节点的布尔值如
var newnode = document.importNode(oldNode, true);//导入节点及其所有子节点
document.body.appendChild(newNode);
document.implementation新方法有三个createDocumentType()和createDocument() 、createHTML-Document()
2.对于Node类型的变化
DOM2: document.body.isSupported("HTML","2.0")用于确定当前节点具有什么能力
DOM3: isSameNode()和isEqualNode(),这两个方法都接收一个节点参数,并在传入节点与引用的节点相同(对于第一个方法)或者相等
(对于第二个方法)时返回true;所谓相同:指的是两个节点引用的是同一个对象。 所谓相等指的是两个节点是相同的类型具有相等的属性
如var div1 = document.createElement("div"); div1.setAtrribute("class", "box");
var div2 = document.createElement("div"); div2.setAtrribute("class", "box");
alert(div1.isSameNode(div1)); //true alert(div1.isEqualNode(div2)); //true //这两个元素相等但不相同
DOM3: document.body.setUserData()方法会将数据指定给节点 他接受3个参数:要设置的键、实际的数据和处理函数。如下
document.body.setUserData("name","Nicholas","function(){}");
同时可以通过document.body.getUserData("name");来获取
DOM1:HTMLFrameElement和HTMLIFrameElement表示框架与内置框架
DOM2:contentDocument(IE8之前不支持)包含一个指针,指向表示框架内容的文档对象 但所有浏览器都支持contentWindow支持
contentWindow.document等价如: var iframe = document.getElementById("myframe");
var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
3.样式
1) DOM2级样式中css属性中的float 对应javascript中的cssFloat 而IE有个styleFloat等价 如 myDiv.style.cssFloat
2)myDiv.style.cssText 他能够访问style中的css代码 设置cssText是为元素应用多项变化最快捷的方式,因为可以一次应用所有变化。
3) myDiv.style.getPropertyValue()返回给定属性的字符串值
myDiv.style.getPropertyCSSValue()它返回的的内容比前者具体一点 存在两个属性:
一是myDiv.style.getPropertyCSSValue().cssText与上面myDiv.style.getPropertyValue()值是一样的。
二是myDiv.style.getPropertyCSSValue()。cssValueType 属性他是一个数值常量 0表示继承的值 1 基本值2 值列表3自定义值
对于上面两种方法IE9+ safari3+ chrome
myDiv.style.removeProperty("border");移除某个CSS属性
4)计算样式 DOM2增强了document.defaultView
document.defaultView.getComputedStyle()方法接收两个参数:一是要计算样式的元素和伪字符串(如after 也可以直接设为null)
它返回一个CSSStyleDeclaration对象,他包含当前元素的所有计算的样式。