版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaScript最常用的55个经典技巧1. oncontextmenu=window.event.returnValue=false 将彻底屏蔽鼠标右键no 可用于Table2. 取消选取、防止复制3. onpaste=return false 不准粘贴4. oncopy=return false; oncut=return false; 防止复制5. IE地址栏前换成自己的图标6. 可以在收藏夹中显示出你的图标7. 关闭输入法8. 永远都会带着框架9. 防止被人frame10. 网页将不能被另存为;11. 12.删除时确认删除13. 取得控件的绝对位置/Javascriptfunctio
2、n getIE(e)var t=e.offsetTop;var l=e.offsetLeft;while(e=e.offsetParent)t+=e.offsetTop;l+=e.offsetLeft;alert(top=+t+/nleft=+l);/VBScript!-function getIE()dim t,l,a,bset a=document.all.img1t=document.all.img1.offsetTopl=document.all.img1.offsetLeftwhile a.tagNameBODYset a = a.offsetParentt=t+a.offsetTo
3、pl=l+a.offsetLeftwendmsgbox top=&t&chr(13)&left=&l,64,得到控件的位置end function-14. 光标是停在文本框文字的最后function cc()var e = event.srcElement;var r =e.createTextRange();r.moveStart(character,e.value.length);r.collapse(true);r.select();15. 判断上一页的来源javascript :document.referrer16. 最小化、最大化、关闭窗口 本例适用于IE17.屏蔽功能键Shift
4、,Alt,Ctrlfunction look() if(event.shiftKey) alert(禁止按Shift键!); /可以换成ALTCTRLdocument.onkeydown=look; 18. 网页不会被缓存或者19.怎样让表单没有凹凸感?或20.&的区别?(division)用来定义大段的页面元素,会产生转行用来定义同一行内的元素,跟的唯一区别是不产生转行是ns的标记,ie不支持,相当于21.让弹出窗口总是在最上面:22.不要滚动条? 让竖条没有: 让横条没有: 两个都去掉?更简单了 23.怎样去掉图片链接点击后,图片周围的虚线?24.电子邮件处理提交表单 25.在打开的子窗口
5、刷新父窗口的代码里如何写?window.opener.location.reload()26.如何设定打开页面的大小打开页面的位置27.在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动 body background-image:url(/logo.gif); background-repeat:no-repeat; background-position:center;background-attachment: fixed 28. 检查一段字符串是否全由数字组成29. 获得一个窗口的大小document.body.clientWidth; document.body.clientH
6、eight30. 怎么判断是否是字符if (/x00-/xff/g.test(s) alert(含有汉字);else alert(全是字符);31.TEXTAREA自适应文字行数的多少32. 日期减去天数等于第二个日期function cc(dd,dadd)/可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + 年 + (a.getMonth() + 1) + 月 + a.getDate() + 日)cc(12/23/
7、2002,2)33. 选择了哪一个Radiofunction checkme()for each ob in radio1if ob.checked then window.alert ob.valuenextend functionStyleBarcode34.脚本永不出错 35.ENTER键可以让光标移到下一个输入框36. 检测某个网站的链接速度:把如下代码加入区域中:tim=1setInterval(tim+,100)b=1var autourl=new Array()autourl1=1000)this.resized=true;this.style.width=1000; align
8、=absMiddle border=0autourl2=autourl3=1000)this.resized=true;this.style.width=1000; align=absMiddle border=0autourl4=autourl5=1000)this.resized=true;this.style.width=1000; align=absMiddle border=0function butt()*()for(var i=1;ia
9、utourl.length;i+)*( = =)*()butt()function auto(url)document.forms0url+b.value=urlif(tim200)document.forms0txt+b.value=/链接超时elsedocument.forms0txt+b.value=/blog/时间+tim/10+秒b+function run()for(var i=1;iautourl.length;i+)*()run()37. 各种样式的光标auto :标准光标default :标准箭头hand :手形光标wait :等待光标text :I形光标vertical-t
10、ext :水平I形光标no-drop :不可拖动光标not-allowed :无效光标help :?帮助光标all-scroll :三角方向标move :移动标crosshair :十字标e-resizen-resizenw-resizew-resizes-resizese-resizesw-resize38.页面进入和退出的特效进入页面推出页面这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使用哪种特效,取值为1-23:0 矩形缩小 1 矩形扩大 2 圆形缩小3 圆形扩大 4 下到上刷新 5 上到下刷新6 左到右刷新 7 右到左刷新
11、 8 竖百叶窗9 横百叶窗 10 错位横百叶窗 11 错位竖百叶窗12 点扩散 13 左右到中间刷新 14 中间到左右刷新15 中间到上下16 上下到中间 17 右下到左上18 右上到左下 19 左上到右下 20 左下到右上21 横条 22 竖条 23 以上22种随机选择一种39.在规定时间内跳转 40.网页是否被检索其中属性值有以下一些:属性值为all: 文件将被检索,且页上链接可被查询;属性值为none: 文件不被检索,而且不查询页上的链接;属性值为index: 文件将被检索;属性值为follow: 查询页上的链接;属性值为noindex: 文件不检索,但可被查询链接;属性值为nofoll
12、ow: 文件不被检索,但可查询页上的链接。41、email地址的分割把如下代码加入区域中42、流动边框效果的表格把如下代码加入区域中l=Array(6,7,8,9,a,b,b,c,d,e,f)Nx=5;Ny=35t=for(x=Nx;xNx+Ny;x+)t+=t+=for(x=2;x=Nx;x+)t+=t+=for(x=Ny;x0;x-)t+=*(t+)var N=Nx*2+Ny*2function f1(y)for(i=0;i10)c=20-cdocument.alla_mo+(i).bgColor=#0000+lc+lc+y+setTimeout(f1(+
13、y+),1)f1(1)43、JavaScript主页弹出窗口技巧窗口中间弹出window.open(,width=400,height=240,top=+(screen.availHeight-240)/2+,left=+(screen.availWidth-400)/2);=function WinOpen() msg=open(,DisplayWindow,toolbar=no,directories=no,menubar=no); msg.*(哈罗!); msg.*(酷毙了!这是JavaScript所开的视窗!);=一、在下面的代码中,你只要单击打开一
14、个窗口,即可链接到赛迪网。而当你想关闭时,只要单击一下即可关闭刚才打开的窗口。代码如下: ,NewWindow); function closeclk() another.close(); /- 二、上面的代码也太静了,为何不来点动感呢?如果能给页面来个降落效果那该多好啊! 代码如下: function drop(n) if(self.moveBy) self.moveBy (0,-900); for(i = n; i 0; i-) self.moveBy(0,3); for(j = 8; j 0; j-) self.moveBy(0,j); self
15、.moveBy(j,0); self.moveBy(0,-j); self.moveBy(-j,0); 三、讨厌很多网站总是按照默认窗口打开,如果你能随心所欲控制打开的窗口那该多好。 代码如下: 打开页面的参数 离开左边的距离: pixels 离开右边的距离: pixels 窗口的宽度: pixels 窗口的高度: pixels 你只要在相对应的对话框中输入一个数值即可,将要打开的页面的窗口控制得很好。44、页面的打开移动把如下代码加入区域中 0; t-) for (x = 20; x 0; x-) for (y = 10; y 0; y-) parent.moveBy(0,-x); for
16、(x = 20; x 0; x-) for (y = 10; y 0; y-) parent.moveBy(0,x); for (x = 20; x 0; x-) for (y = 10; y 0; y-) parent.moveBy(x,0); for (x = 20; x 0; x-) for (y = 10; y 0; y-) parent.moveBy(-x,0); /-/ End -45、显示个人客户端机器的日期和时间!- Hiding today = new Date() *(现在时间是: ,today.getHours(),:,today.getMinutes() *(今天日期为
17、: , today.getMonth()+1,/,today.getDate(),/,today.getYear();/ end hiding contents -46、自动的为你每次产生最後修改的日期了: This is a simple HTML- page.Last changes: 47、不能为空和邮件地址的约束:Enter your name:Enter your e-mail address:48、跑马灯!- Hidevar scrtxt=怎麽样 ! 很酷吧 ! 您也可以试试.+Here goes your message the visitors to your page wil
18、l +look at for hours in pure fascination.;var lentxt=scrtxt.length;var width=100;var pos=1-width;function scroll() pos+; var scroller=; if (pos=lentxt) pos=1-width; if (pos0) for (var i=1; i这里可显示您的网页 !49、在网页中用按钮来控制前页,后页和主页的显示。 50、查看某网址的源代码把如下代码加入区域中function add()var ress=document.forms0.luxiaoqing.v
19、aluewindow.location=view-source:+ress;输入要查看源代码的URL地址:51、title显示日期把如下代码加入区域中:52、显示所有链接把如下代码加入区域中!-function extractlinks()var links=document.all.tags(A)var total=links.lengthvar win2=window.open(,menubar,scrollbars,toolbar)win2.*(一共有+total+个连接)for (i=0;itotal;i+)win2.*(+linksi.outerHTML+)/-53、回车键换行把如下
20、代码加入区域中function handleEnter (field, event) var keyCode = event.keyCode ? event.keyCode : event.which ?event.which : event.charCode; if (keyCode = 13) var i; for (i = 0; i field.form.elements.length; i+) if (field = field.form.elementsi) break; i = (i + 1) % field.form.elements.length; field.form.ele
21、mentsi.focus(); return false; else return true;回车换行54、确认后提交把如下代码加入区域中 55、改变表格的内容把如下代码加入区域中var arr=new Array()arr0=一一一一一;arr1=二二二二二;arr2=三三三三三; 改变第一格 改变第二格 改变第三格 第一格第二格第三格 56、使数字从右边输出。JavaScript性能优化(一)一、避免出现脚本失控 不论什么脚本,在任何时间、任何浏览器上执行,都不应该超过100毫秒。如果实际执行的时间长于这个底限,一定要将进程分解成若干更小的代码段。 脚本失控基本上有以下四个方面的原因: 1
22、. 在循环中执行了太多的操作 解决这个问题的诀窍就是用下面这两个问题来评估每个循环: 1. 这个循环必须要同步执行么? 2. 循环里面的数据,必须要按顺序执行么? 如果1和2都可以否定,那么建议使用setTimeout方式将循环体切分成小块进行异步处理 将循环中的定义变量及初始化操作放到循环外。参见:/article.asp?id=111 2. 臃肿的函数体 在JavaScript中,我们应该尽可能的用局部变量来代替全局变量! 理解JavaScript作用域链。参见:/?tag=ScopeChainAndC
23、losure 理解原型链。参见:/?tag=prototypeChain 3. 过多的递归 使用迭代方式替代递归,采用memoization技术优化递归 斐波那契数列的递归算法优化,参见:/?tag=Memoization 4. 过多的DOM调用 在Web开发中,JavaScript的一个很重要的作用就是对DOM进行操作。可你知道么?对DOM的操作是非常昂贵的,因为这会导致浏览器执行回流(reflow)操作。而执行了过多的回流操作,你就会发现自己的网站变得越来越慢了。我们应该尽可能的减少DOM操作。 回流操
24、作主要会发生在几种情况下: * 改变窗体大小 * 更改字体 * 添加移除stylesheet块 * 内容改变哪怕是输入框输入文字 * CSS虚类被触发如 :hover * 更改元素的className * 当对DOM节点执行新增或者删除操作或内容更改时。 * 动态设置一个style样式时(比如element.style.width=10px)。 * 当获取一个必须经过计算的尺寸值时,比如访问offsetWidth、clientHeight或者其他需要经过计算的CSS值(在兼容DOM的浏览器中,可以通过getComputedStyle函数获取;在IE中,可以通过currentStyle属性获取)
25、。 解决问题的关键,就是限制通过DOM操作所引发回流的次数: 1.在对当前DOM进行操作之前,尽可能多的做一些准备工作,保证N次创建,1次写入。 2.在对DOM操作之前,把要操作的元素,先从当前DOM结构中删除: 1. 通过removeChild()或者replaceChild()实现真正意义上的删除。 2. 设置该元素的display样式为“none”。 修改操作完成后,将上面这个过程反转过来,建议使用第2种方式。 3.CSS部分 另外一个经常引起回流操作的情况是通过style属性对元素的外观进行修改,如element.style.backgroundColor = blue; 每次修改元素
26、的style属性,都肯定会触发回流操作,要解决这个问题可以: 1.使用更改className的方式替换style.xxx=xxx的方式。 2.使用style.cssText = ;一次写入样式。 3. 避免设置过多的行内样式 4. 添加的结构外元素尽量设置它们的位置为fixed或absolute 5. 避免使用表格来布局 6. 避免在CSS中使用JavaScript expressions(IE only) 4.将获取的DOM数据缓存起来。这种方法,对获取那些会触发回流操作的属性(比如offsetWidth等)尤为重要。 5.当对HTMLCollection对象进行操作时,应该将访问的次数尽可能的降至最低,最简单的,你可以将length属性缓存在一个本地变量中,这样就能大幅度的提高循环的效率。 二、避免大字符串字面量对象操作,如 字符串.lenth,尽量转换为new String(字符串)后再进行操作 三、在做字符查找替换等操作时善用正则表达式 快速掌握ECMAScript正则表达式。参见:/article.asp?id=202 四、减少语句,利用运算符优先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考古勘探工安全应急强化考核试卷含答案
- 梁式窑石灰煅烧工安全检查强化考核试卷含答案
- 机械产品试验员操作安全强化考核试卷含答案
- 有机宝石检验员安全素养水平考核试卷含答案
- 热转移防护膜涂布工岗位安全理论考核试卷含答案
- 道路危险货物运输员诚信品质竞赛考核试卷含答案
- 电工合金冷变形工岗中协同应用考核试卷含答案
- 医用光学仪器组装调试工班组建设评优考核试卷含答案
- 车轮轧制工安全素养知识考核试卷含答案
- 盔帽工岗中技术评优考核试卷含答案
- 高标准农田建设竣工测量技术报告
- 技术管理培训课件(全部内容)
- 《卡锁式连接预应力混凝土组合方桩图集》
- 外研版八年级英语上册各单元作文范文
- 开封市第二届职业技能大赛网络系统管理项目技术文件(国赛项目)
- DL∕T 1735-2017 大坝安全监测仪器电缆基本技术条件
- 《水电厂应急预案编制导则》
- 危险化学品使用说明书
- DB11∕T 3035-2023 建筑消防设施维护保养技术规范
- 全国民用建筑工程设计技术措施-规划-建筑-景观
- 《项目管理学》课件
评论
0/150
提交评论