DOM 扩展

1. 呈现模式

document.compatMode == "CSS1Compat"; 标准模式

document.compatMode == "BackCompat"; 混合模式

if(document.compatMode == "CSS1Compat"){
    return "SATAND";
}else{
    return "Quirks";
}

2. 操作内容

a. innerText

设置和获取文本节点字符串

IE、Safari、Opera、Chrome支持innerText属性

FireFox 支持textContent属性

utils.getInnerText = function(element){
		return (typeof element.textContent == "string") ? element.textContent:element.innerText;
	}

	utils.setInnerText = function(element,text){
		if(typeof element.textContent == "string")
			element.textContent = text;
		else
			element.innerText = text;
	}

b. innerHTML

设置文本几点字符串是和innerText 一样

通过innerHTML 插入<script> IE支持,但是必须设置 defer特性,但是必须添加作用域元素

div.innerHTML = "_<script defer> alert();</scr"+"ipt>";  // 多出一个_ 文本节点

div.innerHTML = "<input type=\"hidden\"><script defer>alert();</scr" + "ipt>"; // 使用隐藏的<input>字段,而且不影响页面布局。

插入<style>

//Opera Firefox ie

div.innerHTML = "_<style type=\"text/css\">body {background-color:red;}</style>";

div.removeChild(div.firstChild);

//safari chorme

document.getElementsByTagName("head")[0].appendChild(div.firstChild);

 

Opera Firefox ie 需要一个前置作用域,添加完删除第一个文本节点。
safari chorme 必须将style 元素放到head中,否则会忽略它

不支持innerHTML的元素有

[<col>、<colgroup>、<frameset>、<head>、<html>、<style>、<table>、<tbody>、<thead>、<tfoot>、<title>、<tr>]

posted @ 2015-01-05 17:24  lcw5945  阅读(101)  评论(0编辑  收藏  举报