1. main page里面取iframe src page中的dom对象(兼容各种浏览器)
window.onload = (function(){
var _iframe = document.getElementById('iframe_id').contentWindow;
var _iframe_head = _iframe.document.getElementsByTagName('head')[0];
});
2. js判断浏览器类型
var _browser = {};
var _userAgent = navigator.userAgent.toLowerCase();
if(window.ActiveXObject){
//只有IE支持创建ActiveXObject控件
_browser.ie = _userAgent.match( / msie ([\d.]+) / )[ 1 ];
}
if(document.getBoxObjectFor ){
//Firefox中的DOM元素都有一个getBoxObjectFor函数,用来获取DOM元素的位置和大小,(IE里面是getBoundingClientRect),这个是Firefox独有的
_browser.firefox = _userAgent. match( / firefox\ / ([\d.] + ) / )[1];
}
if(window.opera){
_browser.opera = _userAgent.match( / opera.([\d.]+) / )[ 1 ];
}
if(window.openDataBase){
_browser.safari = _userAgent. match( /safari \ / ([\d.] + ) / )[1];
}
if(window.MessgeEvent && !window.getBoxObjectFor ){
//MessageEvent -- Firefox和Chome都有,但是Chrome没有getBoxObjectFor
_browser.chrome = _userAgent. match( / chrome\ / ([\d.] + ) / )[1];
}
if(_browser.ie){
// the browser is ie
}
...
3. 输入框禁止输入法
<input type='text' sytle='ime-mode : disabled'/>
4. 只允许键盘输入0 ~ 9之间的数字
var ev = window.event || e;
if(ev.which == null && !(ev.keyCode >= 48 && ev.keyCode <= 57) && ev.keyCode != 8){
e.preventDefault();
}
if(ev.which != null && !(ev.which >= 48 && ev.which <= 57) && ev.which != 8){
e.preventDefault();
}
5. 创建一个个数不定的js函数
function test(){
var _args_len = arguments.length;
var first_arg = arguments[0];
.....
}
test(1,'2bca','9787383');
6. JS关于undefined、null、NaN
凡是未定义的和定义了未赋值的都是undefined, null是一种特殊的object,NaN是一种number类型
NaN !== Anything 包括NaN本身
alert(undefined == null) ====> true
关于js中字符串转换成数值的操作,建议最好写成下面的样式:
var str = 'jueyuye'
var _int_value = isNaN(parseInt(str)) ? str : parseInt(str);
7.JS数组的一些操作
shift : 删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.shift(); // a : [2,3,4,5]
unshift : 将参数添加到原数组开头,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); // a : [-2,-1,1,2,3,4,5] b : 7
注意:此返回值在各个浏览器之间会有不同,如果需要使用此方法的返回值,建议使用splice方法!
pop : 删除原数组最后一项,并返回删除元素的值;如果数组为空,则返回undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a : [1,2,3,4] b : 5 不需要返回值的话直接调用就行了
push : 将参数添加到原数组末尾,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.push(6,7); // a : [1,2,3,4,5,6,7] b : 7
concat : 返回一个新数组,是将参数添加到原数组中构成的
var a = [1,2,3,4,5];
var b = a.concat(6,7); // b : [1,2,3,4,5,6,7]
splice(start, deleteCount, val1, val2, ...) : 从start位置开始,删除deleteCount个元素,并从该位置起插入val1,val2, ... , 返回被删除的元素列表
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a : [1,2,7,8,9,5] b : [3,4]
var b = a.splice(0,1); // 同shift
a.splice(0,0,-2,-1); b = a.length; // 同unshift
var b = a.splice(a.length - 1,1); //同pop
a.splice(a.length,0,-2,-1); var b = a.length; //同push
reverse : 将数组反序,返回反序的数组
var a = [1,2,3,4,5];
var b = a.reverse(); // b = [5,4,3,2,1]
slice(start,end) : 返回从原数组中指定开始下标到结束下标之间的项组成的新数组
var a = [1,2,3,4,5];
var b = a.slice(2,5); // b : [3,4,5]
join(seperator) : 将数组的所有元素组成一个字符串,以seperator为分隔符,省略的话默认为逗号分隔符
var a = [1,2,3,4,5];
var b = a.join(); // b : "1,2,3,4,5"
以上的方法能够给数组添加很多自定义的操作,譬如remove(val),add(index)等,可以自己去试
后面会继续添加。。。