JavaScript常用代码笔记

JavaScript常用代码笔记(转)

1、将字符转换成数据

    1 ) return  str * 1 + 1 ;
   
2 ) return  parseInt(str); // return parseFloat(str);
    3 ) new  Number(str); 


2、parentElement和parentNode区别

   第一个是IE dom,第二个是标准DOM;换一个非ie浏览器试试就知道区别了(myie或maxthon或greenbrowser或tt之类都是ie浏览器……)


3、JS中的trim()——去前后的空格

   String.prototype.trim = function(){ return   this .replace( / ( ^ \s * ) | (\s * $) / g, "" );}
   使用:
"     test str   " .trim();返回结果: " test str "


4、报错:missing ( before function parameters

   不知道为什么,放到struts中会报这样的错,在其他工程下不会报错,估计是JS格式不对;
   例如:把function String.prototype.trim(){
return   this .replace( / ( ^ \s * ) | (\s * $) / g, "" );}修改为:
   String.prototype.trim
= function() { return   this .replace( / ( ^ \s * ) | (\s * $) / g, "" );}这样就不会报错了。


5、window.showModalDialog不缓存

   在Sturts的Action中加入:
   response.setHeader(
" Pragma " , " No-Cache " );
   response.setHeader(
" Cache-Control " , " No-Cache " );
   response.setDateHeader(
" Expires " 0 );


6、类似与Java中的startWith()和endWith()方法

String.prototype.endWith = function(str){
 
if (str == null || str == "" || this .length == 0 || str.length > this .length)
  
return   false ;
 
if ( this .substring( this .length - str.length) == str)
  
return   true ;
 
else
  
return   false ;
 
return   true ;
}

String.prototype.startWith
= function(str){
 
if (str == null || str == "" || this .length == 0 || str.length > this .length)
  
return   false ;
 
if ( this .substr( 0 ,str.length) == str)
  
return   true ;
 
else
  
return   false ;
 
return   true ;
}

  应用:
" 123456 " .startWith( " 123 " ); --> 结果为true;
  应用:
" 123456 " .endWith( " 456 " ); --> 结果为true;


7、限制录入的分数只能在(0~100之间),而且最多为一位小数,且小数的数字只能为0或者5

  String.prototype.limitDigit = function(){ // 限制最多为1位小数(返回值true/false)
  var parttern =/^ (\d + )(\.{ 0 | 5 }) ? $ / ;
  
return  parttern.test( this .replace( / ( ^ \s * ) | (\s * $) / g, "" ));


8、String有个属性length,但是它不能区分英文字符,计算中文字符和全角字符。但是在数据存储的时候中文和全角都是用两个字节来存储的,所有需要额外处理一下。自己写了个函数,返回String正真的长度:

 String.prototype.codeLength = function(){
 var len
= 0 ;
 
if ( this == null || this .length == 0 )
  
return   0 ;
 var str
= this .replace( / ( ^ \s * ) | (\s * $) / g, "" ); // 去掉空格
  for (i = 0 ;i < str.length;i ++ )
  
if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128 )
   len
++ ;
  
else  
   len
+= 2 ;
 
return  len;


9、彻底屏蔽鼠标右键

    < body oncontextmenu = " window.event.returnValue=false " >
   或者:
< body oncontextmenu = " self.event.returnValue=false " >
   或者:
< body oncontextmenu = " return false " >


10、防止剪切,复制,粘贴

    < body oncopy = " return false "  oncut = " return false "  onpaste = " return false " >


11、关闭输入法

    < input type = " text/password "  style = " ime-mode:disabled " >
   
< textarea style = " ime-mode:disabled " ></ textarea >


12、防止被人frame(盗链)

   < script >
  
if (top.location != self.location)
    top.location
= self.location;
  
</ script >  


13、网页不能被另存为

   < noscript >< iframesrc =* .html ></ iframe ></ noscript >  


14、按TAB键移动到下一个输入框时,光标停在文本框文字的最后,方便用户继续输入

< script >
function  moveEnd()
{
var  e = event.srcElement;
var  r = e.createTextRange();
r.moveStart('character',e.value.length);
r.collapse(
true );
r.select();
}
</ script >
< input type = 'text' value = ' 0592 ' onfocus = " moveEnd() " >  


15、判断上一页的来源(我感觉无效

   document.referrer


16、最小化、最大化、关闭窗口(关闭窗口:无效)

< object id = 'winMin' classid = " clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11 " >
< param name = " Command "  value = " Minimize " ></ object >
< object id = 'winMax' classid = " clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11 " >
< param name = " Command "  value = " Maximize " ></ object >
< object id = 'winClo' classid = " clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11 " >
< param name = " Command "  value = " Close " ></ object >
< input type = 'button' value = '最小化' onclick = winMin.Click() >
< input type = 'button' value = '最大化' onclick = winMax.Click() >
< input type = 'button' value = '关闭' onclick = winClo.Click() >  


17、parseInt("8")和parseInt("08")得到的结果是不一样的,前者得到"8"后者得到"0"。为什么?

  语法:parseInt(numstring, [radix]) 
  描述:numstring 必选项。要转换为数字的字符串。radix 可选项。在 
2  和  36  之间的表示 numstring 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 ' 0 ' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。 
  现在再回过来看,parseInt(
" 08 " )用的是八进制,转换出错,所有得到 " 0 "
  所以parseInt(
" 8 " )和parseInt( " 08 " , 10 )得到的结果是一样的。


18、限制只能输入数字

   只输入数字: < input type = " text "  size = " 25 "  onkeyup = " value=value.replace(/[^\d]/g,'') " />
   Email:onkeyup
= " value=value.replace(/[^\w|-|@|.]/g,'') "


19、onkeyup与onchange

   onpropertychange能及时捕获属性值的变化
   onkeyup事件,是在键盘按键松开时触发的
   onchange事件是在文本框获得光标前的值被改变(没有改变时不会触发),离开文本框时触发的


20、将双引号替换掉

例:限制输入双引号
< input type = " text "  onkeyup = " this.value=this.value.replace(/\042/g,'') " />
或者:
<input type="text" onkeyup="this.value=this.value.replace(/\x22/g,'')"/>


21、调试代码(跟java的差不多)

try {
   
// ……
} catch (err){
   alert(err+err.description);
}


22、过滤HTML

  在评论的时候为了防止用户提交带有恶意的脚本,可以先过滤HTML标签,过滤掉双引号,单引号,符号 & ,符号 < ,符号 >
String.prototype.filterHtml
= function (){
    
return   this .replace( /&/ g, " &amp; " ).replace( /</ g, " &lt; " ).replace( />/ g, " &gt " ).replace( / " /g, " & # 34 ; " ).replace(/'/g, " & # 39 ; " );
}



23、readonly

  在HTML中可以设置输入框属性readonly来控制不能输入,但是如果在JS下需要注意,要写成readOnly,注意大小写(readOnly = true / false ).



    ☆document.body.scrollTop的值始终为0

  页面直接用<html>开头的话是没有问题的
  使用DTD时用document.documentElement.scrollTop代替document.body.scrollTop就可以了。

你可能感兴趣的:(JavaScript常用代码笔记)