来源 ,百度百科
每一项都是js中的小技巧,但十分的实用! 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6.一个小写转大写的JS: document.getElementById("output").value = document.getElementById("input").value.toUpperCase(); 7.JS中的值类型:String,Number,Boolean,Null,Object,Function 8.JS中的字符型转换成数值型:parseInt(),parseFloat() 9.JS中的数字转换成字符型:(""+变量) 10.JS中的取字符串长度是:(length) 11.JS中的字符与字符相连接使用+号. 12.JS中的比较操作符有:==等于,!=不等于,>,>=,<.<= 13.JS中声明变量使用:var来进行声明 14.JS中的判断语句结构:if(condition){}else{} 15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop} 16.循环中止的命令是:break 17.JS中的函数定义:function functionName([parameter],...){statement[s]} 18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替. 19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self 20.状态栏的设置:window.status="字符"; 21.弹出提示信息:window.alert("字符"); 22.弹出确认框:window.confirm(); 23.弹出输入提示框:window.prompt(); 24.指定当前显示链接的位置:window.location.href="URL" 25.取出窗体中的所有表单的数量:document.forms.length 26.关闭文档的输出流:document.close(); 27.字符串追加连接符:+= 28.创建一个文档元素:document.createElement(),document.createTextNode() 29.得到元素的方法:document.getElementById() 30.设置表单中所有文本型的成员的值为空: var form = window.document.forms[0] for (var i = 0; i<form.elements.length;i++){ if (form.elements[i].type == "text"){ form.elements[i].value = ""; } } 31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE) 32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length 33.单选按钮组判断是否被选中也是用checked. 34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值) 35.字符串的定义:var myString = new String("This is lightsword"); 36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase(); 37.返回字符串2在字符串1中出现的位置:String1.indexOf("String2")!=-1则说明没找到. 38.取字符串中指定位置的一个字符:StringA.charAt(9); 39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6); 40.数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最在值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.random()*(n+1))返回随机数 41.定义日期型变量:var today = new Date(); 42.日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear()得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期几,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,dateObj.setTime(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,dateObj.setSeconds(val)设置秒 [注意:此日期时间从0开始计] 43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFuncVarName 44.parent代表父亲对象,top代表最顶端对象 45.打开子窗口的父窗口为:opener 46.表示当前所属的位置:this 47.当在超链接中调用JS函数时用:(javascript :)来开头后面加函数名 48.在老的浏览器中不执行此JS:<!-- //--> 49.引用一个文件式的JS:<script type="text/javascript" src="aaa.js"></script> 50.指定在不支持脚本的浏览器显示的HTML:<noscript></noscript> 51.当超链和ONCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:<a href="a.html" onclick="location.href='b.html';return false">dfsadf</a> 52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,String,SyntaxError,TypeError,URIError 53.JS中的换行:\n 54.窗口全屏大小:<script>function fullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen;</script> 55.JS中的all代表其下层的全部元素 56.JS中的焦点顺序:document.getElementByid("表单元素").tabIndex = 1 57.innerHTML的值是表单元素的值:如<p id="para">"how are <em>you</em>"</p>,则innerHTML的值就是:how are <em>you</em> 58.innerTEXT的值和上面的一样,只不过不会把<em>这种标记显示出来. 59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态. 60.isDisabled判断是否为禁止状态.disabled设置禁止状态 61.length取得长度,返回整型数值 62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc 63.window.focus()使当前的窗口在所有窗口之前. 64.blur()指失去焦点.与FOCUS()相反. 65.select()指元素为选中状态. 66.防止用户对文本框中输入文本:onfocus="this.blur()" 67.取出该元素在页面中出现的数量:document.all.tags("div(或其它HTML标记符)").length 68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless() 69.状态栏文字的设置:window.status='文字',默认的状态栏文字设置:window.defaultStatus = '文字.'; 70.添加到收藏夹:external.AddFavorite("http://www.dannyg.com","jaskdlf"); 71.JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError; 72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续. 73.JS中的self指的是当前的窗口 74.JS中状态栏显示内容:window.status="内容" 75.JS中的top指的是框架集中最顶层的框架 76.JS中关闭当前的窗口:window.close(); 77.JS中提出是否确认的框:if(confirm("Are you sure?")){alert("ok");}else{alert("Not Ok");} 78.JS中的窗口重定向:window.navigate("http://www.sina.com.cn"); 79.JS中的打印:window.print() 80.JS中的提示输入框:window.prompt("message","defaultReply"); 81.JS中的窗口滚动条:window.scroll(x,y) 82.JS中的窗口滚动到位置:window.scrollby 83.JS中设置时间间隔:setInterval("expr",msecDelay)或setInterval(funcRef,msecDelay)或setTimeout 84.JS中的模态显示在IE4+行,在NN中不行:showModalDialog("URL"[,arguments][,features]); 85.JS中的退出之前使用的句柄:function verifyClose(){event.returnValue="we really like you and hope you will stay longer.";}} window.onbeforeunload=verifyClose; 86.当窗体第一次调用时使用的文件句柄:onload() 87.当窗体关闭时调用的文件句柄:onunload() 88.window.location的属性: protocol(http:),hostname(www.example.com),port(80),host(www.example.com:80),pathname("/a/a.html"),hash("#giantGizmo",指跳转到相应的锚记),href(全部的信息) 89.window.location.reload()刷新当前页面. 90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL) 91.document.write()不换行的输出,document.writeln()换行输出 92.document.body.noWrap=true;防止链接文字折行. 93.变量名.charAt(第几位),取该变量的第几位的字符. 94."abc".charCodeAt(第几个),返回第几个字符的ASCii码值. 95.字符串连接:string.concat(string2),或用+=进行连接 96.变量.indexOf("字符",起始位置),返回第一个出现的位置(从0开始计算) 97.string.lastIndexOf(searchString[,startIndex])最后一次出现的位置. 98.string.match(regExpression),判断字符是否匹配. 99.string.replace(regExpression,replaceString)替换现有字符串. 100.string.split(分隔符)返回一个数组存储值. 101.string.substr(start[,length])取从第几位到指定长度的字符串. 102.string.toLowerCase()使字符串全部变为小写. 103.string.toUpperCase()使全部字符变为大写. 104.parseInt(string[,radix(代表进制)])强制转换成整型. 105.parseFloat(string[,radix])强制转换成浮点型. 106.isNaN(变量):测试是否为数值型. 107.定义常量的关键字:const,定义变量的关键字:var QQ291911320 --------------------------- 程序代码 //去左空格; function ltrim(s){ return s.replace( /^\s*/, ""); } 程序代码 //去右空格; function rtrim(s){ return s.replace( /\s*$/, ""); } 程序代码 //左右空格; function trim(s){ return rtrim(ltrim(s)); } 程序代码 //替换 function replace(s, t, u) { i = s.indexOf(t); r = ""; if (i == -1) return s; r += s.substring(0,i) + u; if ( i + t.length < s.length) r += replace(s.substring(i + t.length, s.length), t, u); return r; } 程序代码 //检查非法字符 //str 要检查的字符 //badwords 非法字符 &|<>= function checkbadwords(str, badwords) { if (typeof (str) != "string" || typeof (badwords) != "string") { return (false); } for (i=0; i<badwords.length; i++) { bad = badwords.charAt(i); for (j=0; j<str.length; j++) { if (bad == str.charAt(j)) { return false; break; } } } return true; } 程序代码 //检查合法字符,限制只能输入的字符 //str 要检查的字符 //goodwords 合法字符 1234567890abcdefghijklmnopqrstuvwxyz function checkgoodwords(str, goodwords) { if (typeof (str) != "string" || typeof (goodwords) != "string") { return (false); } for (i=0; i<str.length; i++) { this_str = str.charAt(i); for (j=0; j<goodwords.length; j++) { if (this_str == goodwords.charAt(j)) { break; } if(j==goodwords.length-1){ return false; } } } return true; } 程序代码 //函 数 名:chkinteger //功能介绍:检查是否为数字 //参数说明:要检查的字符串 //返 回 值:false:不是 true:是 function chkinteger(checkStr) { var checkOK = "0123456789+-"; var allValid = true; for (i=0; i<checkStr.length; i++) { ch = checkStr.charAt(i); if (checkOK.indexOf(ch) == -1) { allValid = false; break; } if ((ch == '+' || ch == '-') && i>0) { allValid = false; break; } } return (allValid); } 程序代码 //函 数 名:chklength //功能介绍:检查字符串的长度 //参数说明:要检查的字符串 //返 回 值:字节长度值 function chklength(checkStr) { var n = 0; for (i=0; i<checkStr.length; i++) { chcode = checkStr.charCodeAt(i); if (chcode>=0 && chcode<=255) { n++; } else { n += 2; } } return (n); } 程序代码 //复选框全选和不全选 //使用方法: //<input name="chkAll" type="checkbox" id="chkAll" onclick=CheckAll(this.form) value="checkbox"> function unselectall() { if(document.myform.chkAll.checked){ document.myform.chkAll.checked = document.myform.chkAll.checked&0; } } function CheckAll(form) { for (var i=0;i<form.elements.length;i++) { var e = form.elements[i]; if (e.Name != "chkAll"&&e.disabled==false) e.checked = form.chkAll.checked; } } 程序代码 //check date //return: 1,days 2,false //2005-12-19 2005-12-29 function checkdate(start_date,end_date){ //alert("start_date:["+start_date+"] end_date:["+end_date+"]"); //isnull if(start_date=="" || end_date==""){ //alert("false"); return false; } var strSeparator = "-"; //split symbol //is- if(start_date.charAt(4)!=strSeparator && start_date.charAt(7)!=strSeparator && end_date.charAt(4)!=strSeparator && end_date.charAt(7)!=strSeparator){ //alert(start_date.charAt(7)); return false; } var strDateArrayStart; var strDateArrayEnd; strDateArrayStart = start_date.split(strSeparator); strDateArrayEnd = end_date.split(strSeparator); var strDateS = new Date(strDateArrayStart[0] + "/" + strDateArrayStart[1] + "/" + strDateArrayStart[2]); var strDateE = new Date(strDateArrayEnd[0] + "/" + strDateArrayEnd[1] + "/" + strDateArrayEnd[2]); //check date var intDay; intDay = (strDateE-strDateS)/(1000*3600*24); //alert(intDay); return intDay; } 程序代码 //checkdate_month //return: 1,true 2,false //2005-12-19 2005-12-29 //month: number function checkdate_month(start_date,end_date,month){ //alert("start_date:["+start_date+"] end_date:["+end_date+"]"); //isnull if(start_date=="" || end_date=="" || month==""){ //alert("false"); return false; } var strSeparator = "-"; //split symbol //is- if(start_date.charAt(4)!=strSeparator && start_date.charAt(7)!=strSeparator && end_date.charAt(4)!=strSeparator && end_date.charAt(7)!=strSeparator){ //alert(start_date.charAt(7)); return false; } var strDateArrayStart; var strDateArrayEnd; strDateArrayStart = start_date.split(strSeparator); strDateArrayEnd = end_date.split(strSeparator); var strDateS = new Date(strDateArrayStart[0] + "/" + strDateArrayStart[1] + "/" + strDateArrayStart[2]); var strDateE = new Date(strDateArrayEnd[0] + "/" + strDateArrayEnd[1] + "/" + strDateArrayEnd[2]); //check date var intDay; intDay = (strDateE-strDateS)/(1000*3600*24); //alert(intDay); var intMonth = intDay/30; if(intMonth>month){ return false; } return true; } 1:16 | 添加评论 | 固定链接 | 引用通告 (0) | 写入日志 | 计算机与 Internet 4月22日 JavaScript <script language="JavaScript"> function log_out() { top.location.href = "logout.jsp"; } <!-- var openedid; var openedid_ft; var flag=0,sflag=0; var folderCodes = new Array('Personal','Product','Order','Lottery','Bonus','Friend','Plan','Complain','Survey'); function clickHandler() { var targetid,srcelement,targetelement; var strbuf; srcelement=window.event.srcElement; if(srcelement.className=="outline") { //在Menu.asp文件如果 class="outline" 则执行 //将它对应的id值加d得到一个新的id值 "1out6d" targetid=srcelement.id+"d"; //alert(targetid); //退出系统 if (targetid == "Logoutd") { if (confirm("请确实是否退出会员系统?")) log_out() ; return; } targetelement=document.all(targetid); // 关闭其他 for (i=0; i<folderCodes.length; i++) document.all(folderCodes[i]+"d").style.display='none'; targetelement.style.display=''; /* if (targetelement.style.display=="none") { //如果 style="display:none" 则执行 targetelement.style.display=''; //将 display 赋以空值表示菜单以打开 strbuf=srcelement.src; if(strbuf.indexOf("images/plus.gif")>-1) { //进行图标变换 srcelement.src="images/tree_plus.gif"; } else { srcelement.src="images/tree_plus.gif"; } } else { targetelement.style.display="none"; strbuf=srcelement.src; if(strbuf.indexOf("images/tree_plus.gif")>-1) { srcelement.src="images/tree_plus.gif"; } else { srcelement.src="images/tree_plus.gif"; } } */ } if(srcelement.className=="dirclick") { targetid=srcelement.id+"img"; targetelement=document.all(targetid); if(flag==1) { if(openedid) { openedid.src="images/tree_dir.gif"; } openedid_ft.style.background="#ffffff"; openedid_ft.style.color="#0000ff"; } if(sflag==1) { openedid_ft.style.background="#ffffff"; openedid_ft.style.color="#0000ff"; } targetelement.src="images/a.gif"; srcelement.style.background="#000080"; srcelement.style.color="#ffffff"; openedid=targetelement; openedid_ft=srcelement; flag=1; sflag=0; } if(srcelement.className=="serviceclick") { targetid=srcelement.id+"img"; targetelement=document.all(targetid); if(flag==1) { if(openedid) { openedid.src="images/a.gif"; } openedid_ft.style.background="#ffffff"; openedid_ft.style.color="#0000ff"; //targetelement.src="images/tree_dir.gif"; } if(sflag==1) { openedid_ft.style.background="#ffffff"; openedid_ft.style.color="#0000ff"; } srcelement.style.background="#000080"; srcelement.style.color="#ffffff"; openedid=targetelement; openedid_ft=srcelement; sflag=1; flag=0; } } document.onclick = clickHandler; //--> </script> //===============================checkbox============// //全选。form.selectall.checked为全选按钮的状态。 <SCRIPT language=JavaScript> <!-- function CheckAll(form) { for (var i=0;i<form.elements.length;i++) { var e = form.elements[i]; if (e.name != 'selectall') e.checked = form.selectall.checked; } } //--> </SCRIPT> //取checkbox的值 String[] name = request.getParameterValues("myCheckBox"); //注:这个"myCheckBox"值就是上一个页面里面对应的checkbox的name对应的值。 for(int k=0;k<name.length;k++){ String id = name[k]; } //==================================================// 0:36 | 添加评论 | 固定链接 | 引用通告 (0) | 写入日志 | 计算机与 Internet 4月21日 URL乱码问题 1 表单提交的数据,用request.getParameter(“xxx”)返回的字符串为乱码或者?? 2 直接通过url如http://localhost/a.jsp?name=中国,这样的get请求在服务端用request. getParameter(“name”)时返回的是乱码;按tomcat4的做法设置Filter也没有用或者用request.setCharacterEncoding("GBK");也不管用 原因: 1 tomcat的j2ee实现对表单提交即post方式提示时处理参数采用缺省的iso-8859-1来处理 2 tomcat对get方式提交的请求对query-string 处理时采用了和post方法不一样的处理方式。(与tomcat4不一样,所以设置setCharacterEncoding(“gbk”))不起作用。 解决办法: 首先所有的jsp文件都加上: 1 实现一个Filter.设置处理字符集为GBK。(在tomcat的webapps/servlet-examples目录有一个完整的例子。请参考web.xml和SetCharacterEncodingFilter的配置。) 1)只要把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。 2)在你的web.xml里加入如下几行: <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 3)完成. 2 get方式的解决办法 1) 打开tomcat的server.xml文件,找到区块,加入如下一行: URIEncoding=”GBK” 完整的应如下: <Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/> 2)重启tomcat,一切OK。 执行如下jsp页页测试是否成功 <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.util.*"%> <% String q=request.getParameter("q"); q = q == null? "没有值" : q; %> <HTML><HEAD><TITLE>新闻列表显示</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <META http-equiv=pragma content=no-cache><body>你提交了:<%=q%> <form action="tcnchar.jsp" method="post"> 输入中文: <input type="text" name="q"><input type="submit" value="确定"> <br> <a href="tcnchar.jsp?q=中国">通过get方式提交</a> </form></BODY></HTML> 测试结果如果你输入文本框或者点超链都会显示:你提交了”中国”,说明成功!!!!!