posts - 108,comments - 56,trackbacks - 0
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就可以了。
posted on 2007-06-15 23:32 破茧而出 阅读(2176) 评论(1)  编辑  收藏 所属分类: JavaScript

FeedBack:
# re: JS常用代码笔记
2012-04-26 14:19 |
学习了  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: