//-------------------------------------------------------------
//---------------------监听输入事件---------------------------
/* <input type="text" oninput="alert();" onpropertychange="alert()" /> */
onpropertychange IE
oninput Other
/* 区别IE和其他浏览器
if("\v"=="v"){
alert("IE");
}else{
alert("NO");
}
*/
//-------------------------------------------------------------
//---------------------为元素添加事件-------------------------
/*
attachEvent
Firefox中,对应的函数是 addEventListener
<input type="button" id="theBtn" value="点击" />
var theBtn = document.getElementById("theBtn");
theBtn.attachEvent("onclick", buttonClicked); //给按钮增加事件
function buttonClicked(e){
alert("点击了一下");
}
*/
//-------------------------------------------------------------
//-------------------------关闭窗口----------------------------
function closeWindow(){
window.opener = null;
window.open('','_self');
window.close();
}
//=============================================================
//--------------------------json-------------------------------
// json
/* 一个对象以“{”(左括号)开始,“}”(右括号)结束。
每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。
名称用引号括起来;值如果是字符串则必须用引号,数值型则不须要。
*/
var o = {"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};
/* 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,
“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。 */
var jsonranklist=[
{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},
{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}
];
// http://www.cnblogs.com/worfdream/articles/1956449.html
//=============================================================
//------------------------验证方法-----------------------------
//是否全是汉字
function isChinese(string){
var re = /^[\u4e00-\u9fa5]+$/;
return re.test(string);
}
alert(isChinese('汉字'));
//是否全是字母数字和下划线
function num_letter(string){
reg = /^[a-zA-Z_0-9]+$/;
return reg.test(string);
}
//是否全部为数字
function only_num(string){
reg = /^[0-9]+$/;
return reg.test(string);
}
//对电子邮件的验证
function email(string){
var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
return reg.test(string);
}
//=============================================================
//-------------------------ajax--------------------------------
function getData(url,func){
var ajax;
if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}else{
ajax = new ActiveXObject('Microsoft.XMLHTTP');
}
ajax.open('GET',url,true);
ajax.onreadystatechange = function (){
if(ajax.readyState == 4 && ajax.status == 200){
//在回调函数中传入实参
func(ajax.responseText);
}
}
ajax.send();
}
//=============================================================
//---------------------事件阻止--------------------------------
event.preventDefault() //阻止默认事件如超链接的跳转
event.stopPropagation() //不触发前辈元素的事件
//=============================================================
//------------------------表单对象-----------------------------
// 表单对象只有一个方法
document.mytest.submit();
// 表单对象中的属性主要包括以下:
elements name action target encoding method
// 表单对象
document.forms[0]
// 而elements常常是多个表单元素值的数组,例:
document.forms[0].elements[1] //表单里面的元素<input type="text" name="username">
// 如:
document.forms[1].elements[0].name //表单名称 username
//-------------------------------------------------------------
//-------------------------------------------------------------
// obj 不可为this,this为特定词
function xxx(obj){}
//-------------------------------------------------------------
// 离开页面执行
window.onbeforeunload = fun();//刷新或离开页面执行
window.onunload = fun(); //读取服务器数据后执行
function fun(){
//最好不要直接调用匿名函数
}
//-------------------------------------------------------------
window.onresize = fun();
//-------------------------------------------------------------
//---------------------字符串数组互转-------------------------
str.split(',');
arr.join(',');
//-------------------------------------------------------------
//--------------------数组高效去重----------------------------
function unique(arr) {
var result = [], hash = {};
for (var i = 0, elem; (elem = arr[i]) != null; i++) {
if (!hash[elem]) {
result.push(elem);
hash[elem] = true;
}
}
return result;
}
//-------------------------------------------------------------
//---------------------字符串转JSON----------------------------
// 方法一
var c = '{"name":"Mike","sex":"女","age":"29"}';
var cToObj = eval("("+c+")");
alert(typeof(cToObj));
// 方法二 低版本浏览器不支持
var a = {"name":"tom","sex":"男","age":"24"};
var b = '{"name":"Mike","sex":"女","age":"29"}';
var aToStr = JSON.stringify(a);
var bToObj = JSON.parse(b);
alert(typeof(aToStr)); //string
alert(typeof(bToObj)); //object
//=============================================================
//--------------------------js对象-----------------------------
var Obj = {
name:'小明',
run:function(){
alert('我在跑');
}
};
//删除变量或方法
delete Obj.run;
delete Obj.name;
//========================弹窗=================================
//-------------------------------------------------------------
// 无返回值
//参数详见DOM手册
windows.open(sURL , sName , sFeatures , bReplace)
// url 窗口地址
// sName 如 _blank
// sFeatures 窗口大小样式,写这个参数才是弹窗
window.open('__MODULE__/content/show_add','newwindow','height=99999,width=99999,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')
//-------------------------------------------------------------
//-------------------------------------------------------------
// 带返回值的
// 兼容有问题
window.showModalDialog()
/* 方法用来创建一个显示HTML内容的模态对话框。
(就是打开后不能操作父窗口,只能等模式窗口关闭时才能操作)*/
// 例:
// 父级页面中
var sURL = "hehe.html"; //要打开的页面
var vArguments = window; // 将父窗口对象传给子窗口
var sFeatures = "dialogHeight:200px;dialogWidth:450px"; // 打开页面的样式布局信息
var val = window.showModalDialog(sURL,vArguments,sFeatures);
alert(val); // 弹出子页面的值
// 子页面中
//子页面返回的值,可以是字符、对象等js支持的任意数据类型
window.returnValue = "刷新";
// 定义模式窗口时,设定 window 为对话框参数,则在该窗口中,可通过window.dialogArguments来控制父窗口的一切元素。
window.showModelessDialog()
/* 方法用来创建一个显示HTML内容的非模态对话框。
(就是打开后仍然可以进行其他的操作) */
// 参考资料 http://xyztony1985.blog.163.com/blog/static/361178200910523910805/
//-------------------------------------------------------------
//=============================================================JS.js
选择阅读主题色