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=’’/>),否则 不可以使用(比如
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中动态添加div的float样式的:
对象.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;
}
}
- 上一篇:javascript能干什么
- 下一篇:已经没有了