offset
DOMObject.offsetWidth;
会得到的是这个DOM对象的width和padding的和。
document.compatMode
document.compatMode用来判断当前浏览器采用的渲染方式。
可能会得到两种答案:
BackCompat:标准兼容模式关闭。
CSS1Compat:标准兼容模式开启。
当document.compatMode等于BackCompat时,浏览器客户区宽度是document.body.clientWidth;
当document.compatMode等于CSS1Compat时,浏览器客户区宽度是document.documentElement.clientWidth。
以下代码实现了水平居中:
function layerCenterV(obj) {
var lca,lcb,lcx,iebody,dsocleft;
if(window.innerWidth){
lca=window.innerWidth;
}
else{
lca=document.body.clientWidth;
}
lcb=obj.offsetWidth;
lcx=(Math.round(lca/2))-(Math.round(lcb/2));
//BackCompat:标准兼容模式关闭。 CSS1Compat:标准兼容模式开启。
iebody=(document.compatMode!="BackCompat")?document.documentElement:document.body;
dsocleft=document.all?iebody.scrollLeft:window.pageXOffset;
obj.style.left=lcx+dsocleft+"px";
}
var cc=document.getElementById("white");
layerCenterV(cc);
eval(“js语句”)
带用这个函数可以立即执js语句,在很多情况下,当使用了ajax以后返回来的内容可能有多个c
function dojs(inText) {
var si=0;
while(true){
//找到<script>的下标 si为从哪开始找<script>
var ss=inText.indexOf("<"+"script"+">",si);
if(ss==-1){
return -1;
}
//找到< / script>的下标 ss为从哪开始找< / script>
var se=inText.indexOf("<"+"/"+"script"+">",ss);
if(se==-1){
return -1;
}
si=se+9;
var sc=inText.substring(ss+8,se);
eval(sc);
}
}
var mm="<"+"script"+">"+"console.log('1')"+"<"+"/"+"script"+">"+"<"+"script"+">"+"console.log('3')"+"<"+"/"+"script"+">";
dojs(mm); //会输出1 3
表单对象的length属性
会输出表达里边一共有多少个表单元素
<form id="form">
<input type="text" name="firstName"><br>
<input type="hidden" name="latName"><br>
<input type="password" name="password"><br>
<textarea name="notes"></textarea><br>
<select name="gender">
<option value="male">Male</option>
<option value="female">Female</option>
</select>
<input type="radio" name="married" value="yes">Yes<br>
<input type="radio" name="married" value="no">No<br>
<input type="checkbox" name="haveKids">Check if you haveKids</input><br>
</form>
</body>
<script>
var form=document.getElementById("form");
function form_xml(form) {
//此时的form.length为8 一个下拉框为一个表单元素
console.log(form.length);
}
form_xml(form); //8
将一个表单对象里边内容转化为