• 微信:
  • hai764003
  • QQ:
  • 511211014
  • E-mail:
  • jaquery@163.com

案例总数51

访问总数312295

收藏总数310826

javascript兼容性总汇返回列表

上传时间:2015-02-02 内容关键字:javascript兼容性总汇

1.eval全局变量定义:

讲字符串转化为javascript命令执行(前提是必须符合javascript语法规范)

作用:比如在jquery中,返回的字符串需要以js语法执行的时候,就需要进行处理一下。

eval("var a=11;alert(a);");


/*

如果在函数内部用eval定义一个变量是局部变量,如果想定义全局变量,方法如下:

定义了一个evals自定义函数来解决兼容性问题:

IE

eval() 在当前作用域生效

execScript() 在全局生效


FF

eval() 在当前作用域生效

window.eval() 在全局生效

*/


function evals(str){

if(typeof str!="string"){

return;

}

if(window.execScript){

window.execScript(str);

}else{

window.eval(str);

}

}


function aa(){

evals("var c='hello word'");

alert(c);

}

aa();

alert(c);


2.  charAt(num) :返回在指定位置的字符。

var str = 'abcd';

alert(str.charAt(0)); // 输出a

Alert(str[0]) //输出a 但是这种方法,在IE6中不支持。


3.获得浏览器到屏幕的左边距和上边距:

IE


为了方便我们可以把window省略掉:

window.screenLeft 可以获得浏览器距屏幕左上角的左边距

window.screenTop 可以获得浏览器距屏幕左上角的上边距


FF

window.screenX 可以获得浏览器距屏幕左上角的左边距

window.screenY 可以获得浏览器距屏幕左上角的上边距


4.获得浏览器的尺寸:


IE

document.documentElement.clientWidth 获得浏览器的宽度

document.documentElement.clientHeight 获得浏览器的高度

FF:

window.innerWidth 获得浏览器的宽度

window.innerHeight 获得浏览器的高度


5. getElementsByName(name) 这个方法存在兼容问题:


IE

如果该对象的标准属性包含有name,那么可以正确使用(比如”text” name=’’/>,否则 不可以使用(比如

’username’>
div中的name属性不是div的标准属性即必须属性, 所以会出问题。)



FF

该方法可以使用于任何情况。


结论:该方法主要使用与表单。



6. 操作内容:


innerHTML 用来设置或者获取对象起始和结束标签内的内容(识别html标签)

innerText 用来设置或者获取对象起始和结束标签内的内容(IE

textContent 用来设置或者获取对象起始和结束标签内的内容(FF


function contents(objs,val){ //方法一


if(document.all){

if(val){

objs.innerText = val;

}else{

return objs.innerText;

}

}else{

if(val){

objs.textContent = val;

}else{

return objs.textContent;

}

}

}


function texts(obj,value){ //方法二

if(document.all){

if(typeof(value) == 'undefined')

return obj,innerText;

else

obj.innerText=value;

}else{

if (typeof(value) == 'undefined')

return obj.textContent;

else

obj.textContent=value;

}

}

window.onload=function(){

var div1 = document.getElementById('div1');

var div2 = document.getElementById('div2');

var but = document.getElementById('but');

but.onclick=function(){

var con=contents(div1);

contents(div2,con);

contents(div2,'');

}

}







aaaaaaaaa aaaaa aaaaaaaa aaaaaaaaaaa









7.操作样式:

更改、获取或者设置某个属性的值:


FF

document.styleSheets[下标].cssRules[下标].style.属性

document.styleSheets[下标].cssRules[下标].style.属性 =

IE

document.styleSheets[下标].rules[下标].style.属性

document.styleSheets[下标].rules[下标].style.属性 =


document.styleSheets 样式表的集合


比如:有两对的话,document.styleSheets.length 就是2.


document.styleSheets[0].rules 样式规则的列表


比如:



因为有2个选择器,所有document.styleSheets[0].rules.length 就是2

document.styleSheets[0].rules[0] 就是相当于是 #div1


document.styleSheets[0].rules[0].style.fontSize 的值就是 12px


.div1{width:200px;height: 200px;border: 1px solid red;color: red;font-size: 14px;}

.div2{width:200px;height: 200px;border: 1px solid green;color: blue;font-size: 20px;}





欢迎大家一起学习js




8.动态的添加删除CSS样式:


FF:

document.styleSheets[下标].insertRule(‘选择器{属性:}’ ,位置) 插入


document.styleSheets[下标].ideleteRule(位置) 删除


IE:


document.styleSheets[下标].addRule(‘选择器’ , 属性:,位置) 插入


document.styleSheets[下标].removeRule(位置) 删除







欢迎大家一起学习js






9. 行内样式和css层叠样式通用的方式(只能获取值)


IE:


对象.currentStyle.属性   用来获得市级的样式属性


FF:


getComputedStyle(对象, null) 用来获得实际的样式属性







欢迎大家一起学习js




10. js中动态添加divfloat样式的:


对象.style.cssFloat='right';适合非IE

对象.style.styleFloat='right';适合FF


兼容性方法:


function floats(obj,aligns){


if (obj.style.styleFloat) {

obj.style.styleFloat=aligns;

}else{

obj.style.cssFloat=aligns;

}

}

 

小海哥推荐你看: 博客园  php教程分享网站  phpmywind  脚本之家