压缩不仅仅可以提高用户的下载速度,同时还可以加密代码,下面说下一个常用的js压缩方法:
首先使用dojo的工具shrinksafe(http://shrinksafe.dojotoolkit.org/)压缩一下,dojo的这个工具会去掉注释,他的压缩不是简单的替换变量,而是利用了mozilla的一个工具,对js解析后才压缩,确保压缩后的代码不会出错。
dojo压缩后,并不会减少太多,下一步可以使用http://javascriptcompressor.com/这个站点进行更高层次的压缩,可惜只能登陆这个站点再压缩,只能将你的js代码复制的他的文本框,然后等他的压缩输出
经过这2步,你的js会变得既安全,文件又小
===========================
压缩js代码:
packer – 最好用的 javascript 压缩工具
地址:
http://dean.edwards.name/packer/
http://kan.willin.org/?page_id=1288
恢复jsmin等工具压缩的js代码:
javascript beautifier能够将jsmin压缩后的js文件内容重新恢复成可读性很好的js文件。
网页版:http://jsbeautifier.org
事件 | 浏览器支持 | 描述 |
onclick | ie3|n2|o3 | 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 |
ondblclick | ie4|n4|o | 鼠标双击事件 |
onmousedown | ie4|n4|o | 鼠标上的按钮被按下了 |
onmouseup | ie4|n4|o | 鼠标按下后,松开时激发的事件 |
onmouseover | ie3|n2|o3 | 当鼠标移动到某对象范围的上方时触发的事件 |
onmousemove | ie4|n4|o | 鼠标移动时触发的事件 |
onmouseout | ie4|n3|o3 | 当鼠标离开某对象范围时触发的事件 |
onkeypress | ie4|n4|o | 当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象] |
onkeydown | ie4|n4|o | 当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象] |
onkeyup | ie4|n4|o | 当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象] |
事件 | 浏览器支持 | 描述 |
onabort | ie4|n3|o | 图片在下载时被用户中断 |
onbeforeunload | ie4|n|o | 当前页面的内容将要被改变时触发的事件 |
onerror | ie4|n3|o | 捕抓当前页面因为某种原因而出现的错误,如脚本错误与外部数据引用的错误 |
onload | ie3|n2|o3 | 页面内空完成传送到浏览器时触发的事件,包括外部文件引入完成 |
onmove | ie|n4|o | 浏览器的窗口被移动时触发的事件 |
onresize | ie4|n4|o | 当浏览器的窗口大小被改变时触发的事件 |
onscroll | ie4|n|o | 浏览器的滚动条位置发生变化时触发的事件 |
onstop | ie5|n|o | 浏览器的停止按钮被按下时触发的事件或者正在下载的文件被中断 |
onunload | ie3|n2|o3 | 当前页面将被改变时触发的事件 |
事件 | 浏览器支持 | 描述 |
onblur | ie3|n2|o3 | 当前元素失去焦点时触发的事件 [鼠标与键盘的触发均可] |
onchange | ie3|n2|o3 | 当前元素失去焦点并且元素的内容发生改变而触发的事件 [鼠标与键盘的触发均可] |
onfocus | ie3|n2|o3 | 当某个元素获得焦点时触发的事件 |
onreset | ie4|n3|o3 | 当表单中reset的属性被激发时触发的事件 |
onsubmit | ie3|n2|o3 | 一个表单被递交时触发的事件 |
事件 | 浏览器支持 | 描述 |
onbounce | ie4|n|o | 在marquee内的内容移动至marquee显示范围之外时触发的事件 |
onfinish | ie4|n|o | 当marquee元素完成需要显示的内容后触发的事件 |
onstart | ie4|n|o | 当marquee元素开始显示内容时触发的事件 |
事件 | 浏览器支持 | 描述 |
onbeforecopy | ie5|n|o | 当页面当前的被选择内容将要复制到浏览者系统的剪贴板前触发的事件 |
onbeforecut | ie5|n|o | 当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发的事件 |
onbeforeeditfocus | ie5|n|o | 当前元素将要进入编辑状态 |
onbeforepaste | ie5|n|o | 内容将要从浏览者的系统剪贴板传送[粘贴]到页面中时触发的事件 |
onbeforeupdate | ie5|n|o | 当浏览者粘贴系统剪贴板中的内容时通知目标对象 |
oncontextmenu | ie5|n|o | 当浏览者按下鼠标右键出现菜单时或者通过键盘的按键触发页面菜单时触发的事件 [试试在页面中的中加入oncontentmenu="return false"就可禁止使用鼠标右键了] |
oncopy | ie5|n|o | 当页面当前的被选择内容被复制后触发的事件 |
oncut | ie5|n|o | 当页面当前的被选择内容被剪切时触发的事件 |
ondrag | ie5|n|o | 当某个对象被拖动时触发的事件 [活动事件] |
ondragdrop | ie|n4|o | 一个外部对象被鼠标拖进当前窗口或者帧 |
ondragend | ie5|n|o | 当鼠标拖动结束时触发的事件,即鼠标的按钮被释放了 |
ondragenter | ie5|n|o | 当对象被鼠标拖动的对象进入其容器范围内时触发的事件 |
ondragleave | ie5|n|o | 当对象被鼠标拖动的对象离开其容器范围内时触发的事件 |
ondragover | ie5|n|o | 当某被拖动的对象在另一对象容器范围内拖动时触发的事件 |
ondragstart | ie4|n|o | 当某对象将被拖动时触发的事件 |
ondrop | ie5|n|o | 在一个拖动过程中,释放鼠标键时触发的事件 |
onlosecapture | ie5|n|o | 当元素失去鼠标移动所形成的选择焦点时触发的事件 |
onpaste | ie5|n|o | 当内容被粘贴时触发的事件 |
onselect | ie4|n|o | 当文本内容被选择时的事件 |
onselectstart | ie4|n|o | 当文本内容选择将开始发生时触发的事件 |
事件 | 浏览器支持 | 描述 |
onafterupdate | ie4|n|o | 当数据完成由数据源到对象的传送时触发的事件 |
oncellchange | ie5|n|o | 当数据来源发生变化时 |
ondataavailable | ie4|n|o | 当数据接收完成时触发事件 |
ondatasetchanged | ie4|n|o | 数据在数据源发生变化时触发的事件 |
ondatasetcomplete | ie4|n|o | 当来子数据源的全部有效数据读取完毕时触发的事件 |
onerrorupdate | ie4|n|o | 当使用onbeforeupdate事件触发取消了数据传送时,代替onafterupdate事件 |
onrowenter | ie5|n|o | 当前数据源的数据发生变化并且有新的有效数据时触发的事件 |
onrowexit | ie5|n|o | 当前数据源的数据将要发生变化时触发的事件 |
onrowsdelete | ie5|n|o | 当前数据记录将被删除时触发的事件 |
onrowsinserted | ie5|n|o | 当前数据源将要插入新数据记录时触发的事件 |
事件 | 浏览器支持 | 描述 |
onafterprint | ie5|n|o | 当文档被打印后触发的事件 |
onbeforeprint | ie5|n|o | 当文档即将打印时触发的事件 |
onfilterchange | ie4|n|o | 当某个对象的滤镜效果发生变化时触发的事件 |
onhelp | ie4|n|o | 当浏览者按下f1或者浏览器的帮助选择时触发的事件 |
onpropertychange | ie5|n|o | 当对象的属性之一发生变化时触发的事件 |
onreadystatechange | ie4|n|o | 当对象的初始化属性值发生变化时触发的事件 |
//获取可见区域 宽度 高度
availwidth = parseint(document.body.clientwidth);
availheight = parseint(document.body.clientheight);
可见区域高度:document.body.clientheight
总高度:document.body.scrollheight
可见区域宽度:document.body.clientwidth
总宽度:document.body.scrollwidth
==============================================================
var getwindowinfo=function()
{
var scrollx=0,scrolly=0,width=0,height=0,contentwidth=0,contentheight=0;
if(typeof(window.pagexoffset)=='number')
{
scrollx=window.pagexoffset;
scrolly=window.pageyoffset;
}
else if(document.body&&(document.body.scrollleft||document.body.scrolltop))
{
scrollx=document.body.scrollleft;
scrolly=document.body.scrolltop;
}
else if(document.documentelement&&(document.documentelement.scrollleft||document.documentelement.scrolltop))
{
scrollx=document.documentelement.scrollleft;
scrolly=document.documentelement.scrolltop;
}
if(typeof(window.innerwidth)=='number')
{
width=window.innerwidth;
height=window.innerheight;
}
else if(document.documentelement&&(document.documentelement.clientwidth||document.documentelement.clientheight))
{
width=document.documentelement.clientwidth;
height=document.documentelement.clientheight;
}
else if(document.body&&(document.body.clientwidth||document.body.clientheight))
{
width=document.body.clientwidth;
height=document.body.clientheight;
}
if(document.documentelement&&(document.documentelement.scrollheight||document.documentelement.offsetheight))
{
if(document.documentelement.scrollheight>document.documentelement.offsetheight){
contentwidth=document.documentelement.scrollwidth;
contentheight=document.documentelement.scrollheight;
}
else
{
contentwidth=document.documentelement.offsetwidth;
contentheight=document.documentelement.offsetheight;
}
}
else if(document.body&&(document.body.scrollheight||document.body.offsetheight))
{
if(document.body.scrollheight>document.body.offsetheight)
{
contentwidth=document.body.scrollwidth;
contentheight=document.body.scrollheight;
}else{
contentwidth=document.body.offsetwidth;
contentheight=document.body.offsetheight;
}
}
else
{
contentwidth=width;
contentheight=height;
}
if(height>contentheight)
height=contentheight;
if(width>contentwidth)
width=contentwidth;
var rect=new object();
rect.scrollx=scrollx;
rect.scrolly=scrolly;
rect.width=width;
rect.height=height;
rect.contentwidth=contentwidth;
rect.contentheight=contentheight;
return rect;
}
"how are you",则innerhtml的值就是:how are you
58.innertext的值和上面的一样,只不过不会把这种标记显示出来.
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
格式:
参数解释如下:
'index.htm' 弹出窗口的目标文件名
'title' 弹出窗口的标题
height 弹出窗口的高度
width 弹出窗口的宽度
top 弹出窗口与屏幕上方的距离
left 弹出窗口与屏幕左侧的距离
toolbar=no 是否显示工具栏,如果显示则为yes
menubar=no 是否显示菜单栏,如果显示则为yes
scrollbars=no 是否显示滚动条,如果显示则为yes
location=no 是否显示地址栏,如果显示则为yes
status=no 是否显示状态栏,如果显示则为yes
resizable=no 是否允许改变窗口大小,如果允许则为yes