//跨浏览器添加事件function addEvent(obj,type,fn){if(obj.addEventListener){obj.addEventListener(type,fn,false);}else if(obj.attachEvent){//IEobj.attchEvent("on"+type,fn);}}//跨浏览器移除事件function removeEvent(obj,type,fn){if(obj.removeEventListener){obj.removeEventListener(type,fn,false);}else if(obj.detachEvent){//兼容IEobj.detachEvent("on"+type,fn);}}跨浏览器阻止默认行为//跨浏览器阻止默认行为function preDef(ev){var e = ev || window.event;if(e.preventDefault){e.preventDefault();}else{e.returnValue =false;}}跨浏览器获取目标对象//跨浏览器获取目标对象function getTarget(ev){if(ev.target){//w3creturn ev.target;}else if(window.event.srcElement){//IEreturn window.event.srcElement;}} 跨浏览器获取滚动条位置//跨浏览器获取滚动条位置,sp == scroll positionfunction getSP(){return{top: document.documentElement.scrollTop || document.body.scrollTop,left : document.documentElement.scrollLeft || document.body.scrollLeft;}}跨浏览器获取可视窗口大小//跨浏览器获取可视窗口大小function getWindow () {if(typeof window.innerWidth !="undefined") {return{width : window.innerWidth,height : window.innerHeight}} else{return {width : document.documentElement.clientWidth,height : document.documentElement.clientHeight}}},js 对象冒充<script type = "text/javascript">function Person(name , age){this.name = name ;this.age = age ;this.say = function (){return "name : "+ this.name + " age: "+this.age ;} ;}var o = new Object() ;//可以简化为Object()Person.call(o , "zhangsan" , 20) ;console.log(o.say() );//name : zhangsan age: 20 </script>js 异步加载和同步加载(function() { var s = document.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = "http://yourdomain.com/script.js"; var x = document.getElementsByTagName("script")[0]; x.parentNode.insertBefore(s, x); })();同步加载<script src="http://yourdomain.com/script.js"></script>同步模式又称阻塞模式,会阻止流览器的后续处理。停止了后续的文件的解析,执行,如图像的渲染。浏览器之所以会采用同步模式,是因为加载的js文件中有对dom的操作,重定向,输出document等默认行为,所以同步才是最安全的。
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/><meta name="auther" content="fq" /><title>获取鼠标坐标</title></head><body><script type="text/javascript">function mousePosition(ev){if(ev.pageX || ev.pageY){return {x:ev.pageX, y:ev.pageY};}return {x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,y:ev.clientY + document.body.scrollTop - document.body.clientTop};}function mouseMove(ev){ev = ev || window.event;var mousePos = mousePosition(ev);document.getElementById("xxx").value = mousePos.x;document.getElementById("yyy").value = mousePos.y;}document.onmousemove = mouseMove;</script>X:<input id="xxx" type="text" /> Y:<input id="yyy" type="text" /></body></html> 注释:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

js拖拽效果
<!doctype html><html lang="zn-CN"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /><title></title><style type="text/css">#login{height: 100px;width: 100px;border: 1px solid black;position: relative;top:200px;left: 200px;background: red;}</style></head><body><div id="login"></div><script type="text/javascript">var oDiv = document.getElementById("login");oDiv.onmousedown = function(e){var e = e || window.event;//window.event兼容IE,当事件发生时有效var diffX = e.clientX - oDiv.offsetLeft;//获取鼠标点击的位置到所选对象的边框的水平距离var diffY = e.clientY - oDiv.offsetTop;document.onmousemove = function(e){ //需设为document对象才能作用于整个文档var e = e||window.event;oDiv.style.left = e.clientX - diffX + "px";//style.left表示所选对象的边框到浏览器左侧距离oDiv.style.top = e.clientY -diffY + "px";};document.onmouseup = function(){document.onmousemove = null;//清除鼠标释放时的对象移动方法document.onmouseup = null;}}</script></body> </html>offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。var img = $("#img_id"); // Get my img elemvar pic_real_width, pic_real_height;$("<img/>") // Make in memory copy of image to avoid css issues.attr("src", $(img).attr("src")).load(function() {pic_real_width = this.width; // Note: $(this).width() will notpic_real_height = this.height; // work for in memory images.});js循环遍历数组<script> //循环遍历数组 var animals = ["cat","dog","human","whale","seal"]; var animalString = ""; for(var i = 0;i<animals.length;i++){ animalString += animals[i] + " "; } alert(animalString); //输出数组里的每个项</script> 遍历二维数组<script> var arr=[[0,0,0,0,0,0],[0,0,1,0,0,0],[0,2,0,3,0,0],[0,0,0,0,0,0]]; for(var i=0;i<arr.length;i++){ //遍历每一个具体的值 for(var j=0;j<arr[i].length;j++){ document.writeln(arr[i][j]+" "); } document.writeln("<br/>"); } </script>阻止表单重复提交var flag = false;//设置一个监听变量if(flag ==true)return;//退出事件flag = true;//表示提交过一次了字符串部分
<script type="text/javascript">var test = "Welcome to my blog!";var value = "blog";var subValue = test.indexOf(value);console.log(subValue);//14,子字符串的索引</script>Number和Math部分
var num = 255;console.log(num.toString(16));//ffjs中,十进制数字以0x开头,八进制数字总是以0开头
<script type="text/javascript">function randomVal(val){return Math.floor(Math.random()*(val + 1));}function randomColor(){return "rgb(" + randomVal(255) + "," + randomVal(255) + "," + randomVal(255) + ")";}</script>目前,所有浏览器都支持RGB表示法和十六进制表示法,除了IE7,它只支持十六进制表示法<script type="text/javascript">var arrayLength = 3;//设置数组长度//创建数组var multiArray = new Array(arrayLength);for(var i =0;i<multiArray.length;i++){multiArray[i] = new Array(arrayLength);}//给第一个数组索引添加项multiArray[0][0] = "phone";multiArray[0][1] = "book";multiArray[0][2] = "TV";//第二个multiArray[1][0] = 2;multiArray[1][1] = 1;multiArray[1][2] = 98;//第三个multiArray[2][0] = ["java","python"];multiArray[2][1] = ["js","C++"];multiArray[2][2] = ["Haskell","php"];</script>排序数组<script type="text/javascript">var fruits = ["banana","apple","orange","strawberry"];console.log(fruits.sort());//Array [ "apple", "banana", "orange", "strawberry" ]var num = [32,43,2,5,-23,0,4];console.log(num.sort());//Array [ -23, 0, 2, 32, 4, 43, 5 ]</script>Array对象的sort方法会按照字母顺序来排序数组元素。对于数字,是按照字符编码的顺序进行排序
function compare(a,b){return a-b;}var num = [32,43,2,5,-23,0,4];console.log(num.sort(compare));//Array [ -23, 0, 2, 4, 5, 32, 43 ] Date日期时间部分var date1=new Date(); //开始时间,当前时间var date2=new Date(); //结束时间,需传入时间参数var date3=date2.getTime()-date1.getTime(); //时间差的毫秒数//计算出相差天数var days=Math.floor(date3/(24*3600*1000));//计算出小时数var leave1=date3%(24*3600*1000); //计算天数后剩余的毫秒数var hours=Math.floor(leave1/(3600*1000));//计算相差分钟数var leave2=leave1%(3600*1000); //计算小时数后剩余的毫秒数var minutes=Math.floor(leave2/(60*1000));//计算相差秒数var leave3=leave2%(60*1000); //计算分钟数后剩余的毫秒数var seconds=Math.round(leave3/1000);console.log(" 相差 "+days+"天 "+hours+"小时 "+minutes+" 分钟"+seconds+" 秒");正则部分
<script type="text/javascript">function cc(s){if(/[^0-9.]/.test(s)) return "invalid value";s=s.replace(/^(d*)$/,"$1.");s=(s+"00").replace(/(d*.dd)d*/,"$1");s=s.replace(".",",");var re=/(d)(d{3},)/;while(re.test(s))s=s.replace(re,"$1,$2");s=s.replace(/,(dd)$/,".$1");return "¥" + s.replace(/^./,"0.")}</script><input onchange="this.value=cc(this.value)" />js判断传入参数是否为质数function fn(input) {input = parseInt(input,10);return isPrime(input) ? "is prime" : "not prime";}function isPrime(input) {if (input < 2) {return false;} else {for (var i = 2; i <= Math.sqrt(input); i++) {if (input % i == 0) {return false;}}}return true;}js判断字符串出现最多的字符,并统计次数//js实现一个函数,来判断一个字符串出现次数最多的字符,并统计这个次数function countStr(str){var obj = {};for(var i = 0, l = str.length,k; i < l ;i++){k = str.charAt(i);if(obj[k]){obj[k]++;}else{obj[k] = 1;}}var m = 0,i=null;for(var k in obj){if(obj[k] > m){m = obj[k];i = k;}}return i + ":" + m;}以上内容是小编日常收集整理的JavaScript 经典实例,非常具有参考价值,感兴趣的朋友收藏起来吧。