`
xylw
  • 浏览: 60248 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
文章分类
社区版块
存档分类
最新评论

常用的JavaScript脚本集合

 
阅读更多
//常用的JavaScript脚本集合 
//打开模式对话框 
function doSelectUser(txtId) 
{ 
strFeatures="dialogWidth=500px;dialogHeight=360px;center=yes;middle=yes ;help=no;status=no;scroll=no"; 
     var url,strReturn; 
     url="selUser.aspx"; 
     strReturn=window.showModalDialog(url,'',strFeatures);   
} 



//返回模式对话框的值 
function okbtn_onclick() 
{ 
var commstr='';          
window.returnvalue=commstr; 
     window.close() ; 
} 
全屏幕打开 IE 窗口 
var winWidth=screen.availWidth ; 
var winHeight=screen.availHeight-20; 
window.open("main.aspx","surveyWindow","toolbar=no,width="+ winWidth  +",height="+ winHeight  +",top=0,left=0,scrollbars=yes,resizable=yes,center:yes,statusbars=yes"); 
break 
//脚本中中使用xml 
function initialize() { 
var xmlDoc 
var xslDoc 
xmlDoc = new ActiveXObject('Microsoft.XMLDOM') 
xmlDoc.async = false; 
xslDoc = new ActiveXObject('Microsoft.XMLDOM') 
xslDoc.async = false; 
xmlDoc.load("tree.xml") 
xslDoc.load("tree.xsl") 
folderTree.innerHTML = xmlDoc.documentElement.transformNode(xslDoc) 
} 



一、验证类 
1、数字验证内 
1.1 整数 
1.2 大于0的整数 (用于传来的ID的验证) 
1.3 负整数的验证 
1.4 整数不能大于iMax 
1.5 整数不能小于iMin 
2、时间类 
2.1 短时间,形如 (13:04:06) 
2.2 短日期,形如 (2003-12-05) 
2.3 长时间,形如 (2003-12-05 13:04:06) 
2.4 只有年和月。形如(2003-05,或者2003-5) 
2.5 只有小时和分钟,形如(12:03) 
3、表单类 
3.1 所有的表单的值都不能为空 
3.2 多行文本框的值不能为空。 
3.3 多行文本框的值不能超过sMaxStrleng 
3.4 多行文本框的值不能少于sMixStrleng 
3.5 判断单选框是否选择。 
3.6 判断复选框是否选择. 
3.7 复选框的全选,多选,全不选,反选 
3.8 文件上传过程中判断文件类型 
4、字符类 
4.1 判断字符全部由a-Z或者是A-Z的字字母组成 
4.2 判断字符由字母和数字组成。 
4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 
4.4 字符串替换函数.Replace(); 
5、浏览器类 
5.1 判断浏览器的类型 
5.2 判断ie的版本 
5.3 判断客户端的分辨率 

6、结合类 
6.1 email的判断。 
6.2 手机号码的验证 
6.3 身份证的验证 




二、功能类 
1、时间与相关控件类 
1.1 日历 
1.2 时间控件 
1.3 万年历 
1.4 显示动态显示时钟效果(文本,如OA中时间) 
1.5 显示动态显示时钟效果 (图像,像手表) 
2、表单类 
2.1 自动生成表单 
2.2 动态添加,修改,删除下拉框中的元素 
2.3 可以输入内容的下拉框 
2.4 多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用于短信发送) 

3、打印类 
3.1 打印控件 
4、事件类 
4.1 屏蔽右键 
4.2 屏蔽所有功能键 
4.3 --> 和<-- F5 F11,F9,F1 
4.4 屏蔽组合键ctrl+N 
5、网页设计类 
5.1 连续滚动的文字,图片(注意是连续的,两段文字和图片中没有空白出现) 
5.2 html编辑控件类 
5.3 颜色选取框控件 
5.4 下拉菜单 
5.5 两层或多层次的下拉菜单 
5.6 仿IE菜单的按钮。(效果如rongshuxa.com的导航栏目) 
5.7 状态栏,title栏的动态效果(例子很多,可以研究一下) 
5.8 双击后,网页自动滚屏 
6、树型结构。 
6.1 asp+SQL版 
6.2 asp+xml+sql版 
6.3 java+sql或者java+sql+xml 
7、无边框效果的制作 
8、连动下拉框技术 
9、文本排序 
10,画图类,含饼、柱、矢量贝滋曲线 
11,操纵客户端注册表类 
12,DIV层相关(拖拽、显示、隐藏、移动、增加) 
13,TABLAE相关(客户端动态增加行列,模拟进度条,滚动列表等) 
14,各种<object classid=>相关类,如播放器,flash与脚本互动等 
16, 刷新/模拟无刷新 异步调用类(XMLHttp或iframe,frame) 












一、验证类 
1、数字验证内 
1.1 整数 
     /^(-|\+)?\d+$/.test(str) 
1.2 大于0的整数 (用于传来的ID的验证) 
     /^\d+$/.test(str) 
1.3 负整数的验证 
     /^-\d+$/.test(str) 
2、时间类 
2.1 短时间,形如 (13:04:06) 
     function isTime(str) 
     { 
       var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); 
       if (a == null) {alert('输入的参数不是时间格式'); return false;} 
       if (a[1]>24 || a[3]>60 || a[4]>60) 
       { 
         alert("时间格式不对"); 
         return false 
       } 
       return true; 
     } 
2.2 短日期,形如 (2003-12-05) 
     function strDateTime(str) 
     { 
        var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
        if(r==null)return false; 
        var d= new Date(r[1], r[3]-1, r[4]); 
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); 
     } 
2.3 长时间,形如 (2003-12-05 13:04:06) 
     function strDateTime(str) 
     { 
       var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
       var r = str.match(reg); 
       if(r==null)return false; 
       var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
       return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); 
     } 
2.4 只有年和月。形如(2003-05,或者2003-5) 
2.5 只有小时和分钟,形如(12:03) 
3、表单类 
3.1 所有的表单的值都不能为空 
     <input onblur="if(this.value.replace(/^ +| +$/g,'')=='')alert('不能为空!')"> 
3.2 多行文本框的值不能为空。 
3.3 多行文本框的值不能超过sMaxStrleng 
3.4 多行文本框的值不能少于sMixStrleng 
3.5 判断单选框是否选择。 
3.6 判断复选框是否选择. 
3.7 复选框的全选,多选,全不选,反选 
3.8 文件上传过程中判断文件类型 
4、字符类 
4.1 判断字符全部由a-Z或者是A-Z的字字母组成 
     <input onblur="if(/[^a-zA-Z]/g.test(this.value))alert('有错')"> 
4.2 判断字符由字母和数字组成。 
     <input onblur="if(/[^0-9a-zA-Z]/g.test(this.value))alert('有错')"> 
4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母 
     /^([a-zA-z_]{1})([\w]*)$/g.test(str) 
4.4 字符串替换函数.Replace(); 
5、浏览器类 
5.1 判断浏览器的类型 
     window.navigator.appName 
5.2 判断ie的版本 
     window.navigator.appVersion 
5.3 判断客户端的分辨率 
     window.screen.height;  window.screen.width; 

6、结合类 
6.1 email的判断。 
     function ismail(mail) 
     { 
       return(new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail)); 
     } 
6.2 手机号码的验证 
6.3 身份证的验证 
     function isIdCardNo(num) 
     { 
       if (isNaN(num)) {alert("输入的不是数字!"); return false;} 
       var len = num.length, re; 
       if (len == 15) 
         re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/); 
       else if (len == 18) 
         re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/); 
       else {alert("输入的数字位数不对!"); return false;} 
       var a = num.match(re); 
       if (a != null) 
       { 
         if (len==15) 
         { 
           var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); 
           var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
         } 
         else 
         { 
           var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); 
           var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
         } 
         if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;} 
       } 
       return true; 
     } 



画图: 
<OBJECT 
id=S 
style="LEFT: 0px; WIDTH: 392px; TOP: 0px; HEIGHT: 240px" 
height=240 
width=392 
classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6"> 
</OBJECT> 
<SCRIPT> 
S.DrawingSurface.ArcDegrees(0,0,0,30,50,60); 
S.DrawingSurface.ArcRadians(30,0,0,30,50,60); 
S.DrawingSurface.Line(10,10,100,100); 
</SCRIPT> 

写注册表: 
<SCRIPT> 
var WshShell = WScript.CreateObject("WScript.Shell"); 
WshShell.RegWrite ("HKCU\ oftware\\ACME\\FortuneTeller\\", 1, "REG_BINARY"); 
WshShell.RegWrite ("HKCU\ oftware\\ACME\\FortuneTeller\\MindReader", "Goocher!", "REG_SZ"); 
var bKey =    WshShell.RegRead ("HKCU\ oftware\\ACME\\FortuneTeller\\"); 
WScript.Echo (WshShell.RegRead ("HKCU\ oftware\\ACME\\FortuneTeller\\MindReader")); 
WshShell.RegDelete ("HKCU\ oftware\\ACME\\FortuneTeller\\MindReader"); 
WshShell.RegDelete ("HKCU\ oftware\\ACME\\FortuneTeller\\"); 
WshShell.RegDelete ("HKCU\ oftware\\ACME\\"); 
</SCRIPT> 











TABLAE相关(客户端动态增加行列) 
<HTML> 
<SCRIPT LANGUAGE="JScript"> 
function numberCells() { 
   var count=0; 
   for (i=0; i < document.all.mytable.rows.length; i++) { 
       for (j=0; j < document.all.mytable.rows(i).cells.length; j++) { 
           document.all.mytable.rows(i).cells(j).innerText = count; 
           count++; 
       } 
   } 
} 
</SCRIPT> 
<BODY onload="numberCells()"> 
<TABLE id=mytable border=1> 
<TR><TH> </TH><TH> </TH><TH> </TH><TH> </TH></TR> 
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR> 
<TR><TD> </TD><TD> </TD><TD> </TD><TD> </TD></TR> 
</TABLE> 
</BODY> 
</HTML> 











1.身份证严格验证: 



<script> 
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} 

function cidInfo(sId){ 
var iSum=0 
var info="" 
if(!/^\d{17}(\d|x)$/i.test(sId))return false; 
sId=sId.replace(/x$/i,"a"); 
if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地区"; 
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2)); 
var d=new Date(sBirthday.replace(/-/g,"/")) 
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日"; 
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) 
if(iSum%11!=1)return "Error:非法证号"; 
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女") 
} 

document.write(cidInfo("380524198002300016"),"<br/>"); 
document.write(cidInfo("340524198002300019"),"<br/>") 
document.write(cidInfo("340524197711111111"),"<br/>") 
document.write(cidInfo("34052419800101001x"),"<br/>"); 
</script> 



2.验证IP地址 
<SCRIPT LANGUAGE="javascript"> 
function isip(s){ 
var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}}; 
var re=s.split(".") 
return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false 
} 

var s="202.197.78.129"; 
alert(isip(s)) 
</SCRIPT> 



3.加sp1后还能用的无边框窗口!! 
<HTML XMLNS:IE> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<IE:Download ID="include" style="behavior:url(#default#download)" /> 
<title>Chromeless Window</title> 

<SCRIPT LANGUAGE="JScript"> 
/*--- Special Thanks For andot ---*/ 

/* 
This following code are designed and writen by Windy_sk <[email]seasonx@163.net[/email]> 
You can use it freely, but u must held all the copyright items! 
*/ 

/*--- Thanks For andot Again ---*/ 

var CW_width= 400; 
var CW_height= 300; 
var CW_top= 100; 
var CW_left= 100; 
var CW_url= "/"; 
var New_CW= window.createPopup(); 
var CW_Body= New_CW.document.body; 
var content= ""; 
var CSStext= "margin:1px;color:black; border:2px outset;border-style:expression(onmouseout=onmouseup=function(){this.style.borderstyle='outset'}, onmousedown=function(){if(event.button!=2)this.style.borderstyle='inset'});background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;"; 

//Build Window 
include.startDownload(CW_url, function(source){content=source}); 

function insert_content(){ 
var temp = ""; 
CW_Body.style.overflow= "hidden"; 
CW_Body.style.backgroundColor= "white"; 
CW_Body.style.border=  "solid black 1px"; 
content = content.replace(/<a ([^>]*)>/g,"<a onclick='parent.open(this.href);return false' $1>"); 
temp += "<table width=100% height=100% cellpadding=0 cellspacing=0 border=0>"; 
temp += "<tr style=';font-size:12px;background:#0099CC;height:20;cursor:default' ondblclick=\"Max.innerText=Max.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();\" onmouseup='parent.drag_up(event)' onmousemove='parent.drag_move(event)' onmousedown='parent.drag_down(event)' onselectstart='return false' oncontextmenu='return false'>"; 
temp += "<td style='color:#ffffff;padding-left:5px'>Chromeless Window For IE6 SP1</td>"; 
temp += "<td style='color:#ffffff;padding-right:5px;' align=right>"; 
temp += "<span id=Help  onclick=\"alert('Chromeless Window For IE6 SP1  -  Ver 1.0\\n\\nCode By Windy_sk\\n\\nSpecial Thanks For andot')\" style=\""+CSStext+"font-family:System;padding-right:2px;\">?</span>"; 
temp += "<span id=Min   onclick='parent.New_CW.hide();parent.blur()' style=\""+CSStext+"font-family:Webdings;\" title='Minimum'>0</span>"; 
temp += "<span id=Max   onclick=\"this.innerText=this.innerText=='1'?'2':'1';parent.if_max=!parent.if_max;parent.show_CW();\" style=\""+CSStext+"font-family:Webdings;\" title='Maximum'>1</span>"; 
temp += "<span id=Close onclick='parent.opener=null;parent.close()' style=\""+CSStext+"font-family:System;padding-right:2px;\" title='Close'>x</span>"; 
temp += "</td></tr><tr><td colspan=2>"; 
temp += "<div id=include style='overflow:scroll;overflow-x:hidden;overflow-y:auto; HEIGHT: 100%; width:"+CW_width+"'>"; 
temp += content; 
temp += "</div>"; 
temp += "</td></tr></table>"; 
CW_Body.innerHTML = temp; 
} 



setTimeout("insert_content()",1000); 



var if_max = true; 
function show_CW(){ 
window.moveTo(10000, 10000); 
if(if_max){ 
New_CW.show(CW_top, CW_left, CW_width, CW_height); 
if(typeof(New_CW.document.all.include)!="undefined"){ 
New_CW.document.all.include.style.width = CW_width; 
New_CW.document.all.Max.innerText = "1"; 
} 



}else{ 
New_CW.show(0, 0, screen.width, screen.height); 
New_CW.document.all.include.style.width = screen.width; 
} 
} 



window.onfocus  = show_CW; 
window.onresize = show_CW; 



// Move Window 
var drag_x,drag_y,draging=false 



function drag_move(e){ 
if (draging){ 
New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height); 
return false; 
} 
} 



function drag_down(e){ 
if(e.button==2)return; 
if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height)return; 
drag_x=e.clientX; 
drag_y=e.clientY; 
draging=true; 
e.srcElement.setCapture(); 
} 



function drag_up(e){ 
draging=false; 
e.srcElement.releaseCapture(); 
if(New_CW.document.body.offsetWidth==screen.width && New_CW.document.body.offsetHeight==screen.height) return; 
CW_top  = e.screenX-drag_x; 
CW_left = e.screenY-drag_y; 
} 



</SCRIPT> 
</HTML> 





贴两个关于treeview的 
<script language="javascript"> 
<!-- 
//初始化选中节点 
function initchecknode() 
{ 
var node=TreeView1.getTreeNode("1"); 
node.setAttribute("Checked","true"); 
setcheck(node,"true"); 
FindCheckedFromNode(TreeView1); 
} 
//oncheck事件 
function tree_oncheck(tree) 
{ 
var node=tree.getTreeNode(tree.clickedNodeIndex); 
var Pchecked=tree.getTreeNode(tree.clickedNodeIndex).getAttribute("checked"); 
setcheck(node,Pchecked); 
document.all.checked.value=""; 
document.all.unchecked.value=""; 
FindCheckedFromNode(TreeView1); 
} 
//设置子节点选中 
function setcheck(node,Pc) 
{ 
var i; 
var ChildNode=new Array(); 
ChildNode=node.getChildren(); 

if(parseInt(ChildNode.length)==0) 
return; 
else 
{ 
for(i=0;i<ChildNode.length;i++) 
{ 
  var cNode; 
  cNode=ChildNode[i]; 
  if(parseInt(cNode.getChildren().length)!=0) 
   setcheck(cNode,Pc); 
  cNode.setAttribute("Checked",Pc); 
} 
} 
} 
//获取所有节点状态 
function FindCheckedFromNode(node) { 
var i = 0; 
var nodes = new Array(); 
nodes = node.getChildren(); 

for (i = 0; i < nodes.length; i++) { 
var cNode; 
cNode=nodes[i]; 
if (cNode.getAttribute("Checked")) 
  AddChecked(cNode); 
else 
     AddUnChecked(cNode); 

if (parseInt(cNode.getChildren().length) != 0 ) { 
  FindCheckedFromNode(cNode); 
} 
} 
} 
//添加选中节点 
function AddChecked(node) { 
document.all.checked.value += node.getAttribute("NodeData"); 
document.all.checked.value += ','; 
} 
//添加未选中节点 
function AddUnChecked(node) { 
document.all.unchecked.value += node.getAttribute("NodeData"); 
document.all.unchecked.value += ','; 
} 
//--> 
</script> 





treeview中如何在服务器端得到客户端设置后的节点选中状态 
<script language="C#" runat="server"> 
  private void Button1_Click(object sender, System.EventArgs e) 
  { 
   Response.Write(TreeView1.Nodes[0].Checked); 
  } 
</script> 
<script language="javascript"> 
  function set_check() 
  { 
   var nodeindex = "0"; 
   var node=TreeView1.getTreeNode(nodeindex); 
   node.setAttribute("Checked","True"); 
   TreeView1.queueEvent('oncheck', nodeindex); 
  } 
</script> 





三個實用的小技巧:關閉輸入法.禁止貼上.禁止複製 
關閉輸入法 



本文字框輸入法被關閉:  
語法: style="ime-mode:disabled" 
範例: <input type="text" name="textfield" style="ime-mode:disabled"> 



禁止貼上 



本文字框禁止貼上文字:  
語法:onpaste="return false" 
範例:<input type="text" name="textfield" onpaste="return false"> 



禁止複製 



本文字框禁止複製:  
語法:oncopy="return false;" oncut="return false;" 
範例:<input name="textfield" type="text" value="不能複製裡面的字" oncopy="return false;" oncut="return false;"> 





//================================ 
//Cookie操作 
//================================ 
function getCookieVal (offset) 
{ 
var endstr = documents.cookie.indexOf (";", offset); 
if (endstr == -1) 
endstr = documents.cookie.length; 
return unescape(documents.cookie.substring(offset, endstr)); 
} 



function GetCookie (name) 
{ 
var arg = name + "="; 
var alen = arg.length; 
var clen = documents.cookie.length; 
var i = 0; 
while (i < clen) 
{ 
var j = i + alen; 
if (documents.cookie.substring(i, j) == arg) 
return getCookieVal (j); 
i = documents.cookie.indexOf(" ", i) + 1; 
if (i == 0) 
break; 
} 
return null; 
} 




function deleteCookie(cname) { 



var expdate = new Date(); 
expdate.setTime(expdate.getTime() - (24 * 60 * 60 * 1000 * 369)); 



// documents.cookie =" ckvalue="ok"; expires="+ expdate.toGMTString(); 
setCookie(cname,"",expdate); 



} 



function setCookie (name, value, expires) { 



documents.cookie = name + "=" + escape(value) + 
   "; expires=" + expires.toGMTString() ; 
} 









一个可以在页面上随意画线、多边形、圆,填充等功能的js  (part 1) 



var jg_ihtm, jg_ie, jg_fast, jg_dom, jg_moz, 
jg_n4 = (document.layers && typeof document.classes != "undefined"); 




function chkDHTM(x, i) 
{ 
x = document.body || null; 
jg_ie = x && typeof x.insertAdjacentHTML != "undefined"; 
jg_dom = (x && !jg_ie && 
typeof x.appendChild != "undefined" && 
typeof document.createRange != "undefined" && 
typeof (i = document.createRange()).setStartBefore != "undefined" && 
typeof i.createContextualFragment != "undefined"); 
jg_ihtm = !jg_ie && !jg_dom && x && typeof x.innerHTML != "undefined"; 
jg_fast = jg_ie && document.all && !window.opera; 
jg_moz = jg_dom && typeof x.style.MozOpacity != "undefined"; 
} 




function pntDoc() 
{ 
this.wnd.document.write(jg_fast? this.htmRpc() : this.htm); 
this.htm = ''; 
} 




function pntCnvDom() 
{ 
var x = document.createRange(); 
x.setStartBefore(this.cnv); 
x = x.createContextualFragment(jg_fast? this.htmRpc() : this.htm); 
this.cnv.appendChild(x); 
this.htm = ''; 
} 




function pntCnvIe() 
{ 
this.cnv.insertAdjacentHTML("BeforeEnd", jg_fast? this.htmRpc() : this.htm); 
this.htm = ''; 
} 




function pntCnvIhtm() 
{ 
this.cnv.innerHTML += this.htm; 
this.htm = ''; 
} 




function pntCnv() 
{ 
this.htm = ''; 
} 




function mkDiv(x, y, w, h) 
{ 
this.htm += '<div style="position:absolute;'+ 
'left:' + x + 'px;'+ 
'top:' + y + 'px;'+ 
'width:' + w + 'px;'+ 
'height:' + h + 'px;'+ 
'clip:rect(0,'+w+'px,'+h+'px,0);'+ 
'background-color:' + this.color + 
(!jg_moz? ';overflow:hidden' : '')+ 
';"><\/div>'; 
} 




function mkDivIe(x, y, w, h) 
{ 
this.htm += '%%'+this.color+';'+x+';'+y+';'+w+';'+h+';'; 
} 




function mkDivPrt(x, y, w, h) 
{ 
this.htm += '<div style="position:absolute;'+ 
'border-left:' + w + 'px solid ' + this.color + ';'+ 
'left:' + x + 'px;'+ 
'top:' + y + 'px;'+ 
'width:0px;'+ 
'height:' + h + 'px;'+ 
'clip:rect(0,'+w+'px,'+h+'px,0);'+ 
'background-color:' + this.color + 
(!jg_moz? ';overflow:hidden' : '')+ 
';"><\/div>'; 
} 




function mkLyr(x, y, w, h) 
{ 
this.htm += '<layer '+ 
'left="' + x + '" '+ 
'top="' + y + '" '+ 
'width="' + w + '" '+ 
'height="' + h + '" '+ 
'bgcolor="' + this.color + '"><\/layer>\n'; 
} 




var regex =  /%%([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);/g; 
function htmRpc() 
{ 
return this.htm.replace( 
regex, 
'<div style="overflow:hidden;position:absolute;background-color:'+ 
'$1;left:$2;top:$3;width:$4;height:$5"></div>\n'); 
} 




function htmPrtRpc() 
{ 
return this.htm.replace( 
regex, 
'<div style="overflow:hidden;position:absolute;background-color:'+ 
'$1;left:$2;top:$3;width:$4;height:$5;border-left:$4px solid $1"></div>\n'); 
} 




function mkLin(x1, y1, x2, y2) 
{ 
if (x1 > x2) 
{ 
var _x2 = x2; 
var _y2 = y2; 
x2 = x1; 
y2 = y1; 
x1 = _x2; 
y1 = _y2; 
} 
var dx = x2-x1, dy = Math.abs(y2-y1), 
x = x1, y = y1, 
yIncr = (y1 > y2)? -1 : 1; 



if (dx >= dy) 
{ 
var pr = dy<<1, 
pru = pr - (dx<<1), 
p = pr-dx, 
ox = x; 
while ((dx--) > 0) 
{ 
++x; 
if (p > 0) 
{ 
this.mkDiv(ox, y, x-ox, 1); 
y += yIncr; 
p += pru; 
ox = x; 
} 
else p += pr; 
} 
this.mkDiv(ox, y, x2-ox+1, 1); 
} 



else 
{ 
var pr = dx<<1, 
pru = pr - (dy<<1), 
p = pr-dy, 
oy = y; 
if (y2 <= y1) 
{ 
while ((dy--) > 0) 
{ 
if (p > 0) 
{ 
this.mkDiv(x++, y, 1, oy-y+1); 
y += yIncr; 
p += pru; 
oy = y; 
} 
else 
{ 
y += yIncr; 
p += pr; 
} 
} 
this.mkDiv(x2, y2, 1, oy-y2+1); 
} 
else 
{ 
while ((dy--) > 0) 
{ 
y += yIncr; 
if (p > 0) 
{ 
this.mkDiv(x++, oy, 1, y-oy); 
p += pru; 
oy = y; 
} 
else p += pr; 
} 
this.mkDiv(x2, oy, 1, y2-oy+1); 
} 
} 
} 




function mkLin2D(x1, y1, x2, y2) 
{ 
if (x1 > x2) 
{ 
var _x2 = x2; 
var _y2 = y2; 
x2 = x1; 
y2 = y1; 
x1 = _x2; 
y1 = _y2; 
} 
var dx = x2-x1, dy = Math.abs(y2-y1), 
x = x1, y = y1, 
yIncr = (y1 > y2)? -1 : 1; 



var s = this.stroke; 
if (dx >= dy) 
{ 
if (s-3 > 0) 
{ 
var _s = (s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s>>1)*dy) / dx; 
_s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1; 
} 
else var _s = s; 
var ad = Math.ceil(s/2); 



var pr = dy<<1, 
pru = pr - (dx<<1), 
p = pr-dx, 
ox = x; 
while ((dx--) > 0) 
{ 
++x; 
if (p > 0) 
{ 
this.mkDiv(ox, y, x-ox+ad, _s); 
y += yIncr; 
p += pru; 
ox = x; 
} 
else p += pr; 
} 
this.mkDiv(ox, y, x2-ox+ad+1, _s); 
} 



else 
{ 
if (s-3 > 0) 
{ 
var _s = (s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s>>1)*dx-dy) / dy; 
_s = (!(s-4)? Math.ceil(_s) : Math.round(_s)) + 1; 
} 
else var _s = s; 
var ad = Math.round(s/2); 



var pr = dx<<1, 
pru = pr - (dy<<1), 
p = pr-dy, 
oy = y; 
if (y2 <= y1) 
{ 
++ad; 
while ((dy--) > 0) 
{ 
if (p > 0) 
{ 
this.mkDiv(x++, y, _s, oy-y+ad); 
y += yIncr; 
p += pru; 
oy = y; 
} 
else 
{ 
y += yIncr; 
p += pr; 
} 
} 
this.mkDiv(x2, y2, _s, oy-y2+ad); 
} 
else 
{ 
while ((dy--) > 0) 
{ 
y += yIncr; 
if (p > 0) 
{ 
this.mkDiv(x++, oy, _s, y-oy+ad); 
p += pru; 
oy = y; 
} 
else p += pr; 
} 
this.mkDiv(x2, oy, _s, y2-oy+ad+1); 
} 
} 
} 




function mkLinDott(x1, y1, x2, y2) 
{ 
if (x1 > x2) 
{ 
var _x2 = x2; 
var _y2 = y2; 
x2 = x1; 
y2 = y1; 
x1 = _x2; 
y1 = _y2; 
} 
var dx = x2-x1, dy = Math.abs(y2-y1), 
x = x1, y = y1, 
yIncr = (y1 > y2)? -1 : 1, 
drw = true; 
if (dx >= dy) 
{ 
var pr = dy<<1, 
pru = pr - (dx<<1), 
p = pr-dx; 
while ((dx--) > 0) 
{ 
if (drw) this.mkDiv(x, y, 1, 1); 
drw = !drw; 
if (p > 0) 
{ 
y += yIncr; 
p += pru; 
} 
else p += pr; 
++x; 
} 
if (drw) this.mkDiv(x, y, 1, 1); 
} 



else 
{ 
var pr = dx<<1, 
pru = pr - (dy<<1), 
p = pr-dy; 
while ((dy--) > 0) 
{ 
if (drw) this.mkDiv(x, y, 1, 1); 
drw = !drw; 
y += yIncr; 
if (p > 0) 
{ 
++x; 
p += pru; 
} 
else p += pr; 
} 
if (drw) this.mkDiv(x, y, 1, 1); 
} 
} 




function mkOv(left, top, width, height) 
{ 
var a = width>>1, b = height>>1, 
wod = width&1, hod = (height&1)+1, 
cx = left+a, cy = top+b, 
x = 0, y = b, 
ox = 0, oy = b, 
aa = (a*a)<<1, bb = (b*b)<<1, 
st = (aa>>1)*(1-(b<<1)) + bb, 
tt = (bb>>1) - aa*((b<<1)-1), 
w, h; 
while (y > 0) 
{ 
if (st < 0) 
{ 
st += bb*((x<<1)+3); 
tt += (bb<<1)*(++x); 
} 
else if (tt < 0) 
{ 
st += bb*((x<<1)+3) - (aa<<1)*(y-1); 
tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3); 
w = x-ox; 
h = oy-y; 
if (w&2 && h&2) 
{ 
this.mkOvQds(cx, cy, -x+2, ox+wod, -oy, oy-1+hod, 1, 1); 
this.mkOvQds(cx, cy, -x+1, x-1+wod, -y-1, y+hod, 1, 1); 
} 
else this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, oy-h+hod, w, h); 
ox = x; 
oy = y; 
} 
else 
{ 
tt -= aa*((y<<1)-3); 
st -= (aa<<1)*(--y); 
} 
} 
this.mkDiv(cx-a, cy-oy, a-ox+1, (oy<<1)+hod); 
this.mkDiv(cx+ox+wod, cy-oy, a-ox+1, (oy<<1)+hod); 
} 




一个可以在页面上随意画线、多边形、圆,填充等功能的js  (part 2) 




function mkOv2D(left, top, width, height) 
{ 
var s = this.stroke; 
width += s-1; 
height += s-1; 
var a = width>>1, b = height>>1, 
wod = width&1, hod = (height&1)+1, 
cx = left+a, cy = top+b, 
x = 0, y = b, 
aa = (a*a)<<1, bb = (b*b)<<1, 
st = (aa>>1)*(1-(b<<1)) + bb, 
tt = (bb>>1) - aa*((b<<1)-1); 



if (s-4 < 0 && (!(s-2) || width-51 > 0 && height-51 > 0)) 
{ 
var ox = 0, oy = b, 
w, h, 
pxl, pxr, pxt, pxb, pxw; 
while (y > 0) 
{ 
if (st < 0) 
{ 
st += bb*((x<<1)+3); 
tt += (bb<<1)*(++x); 
} 
else if (tt < 0) 
{ 
st += bb*((x<<1)+3) - (aa<<1)*(y-1); 
tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3); 
w = x-ox; 
h = oy-y; 



if (w-1) 
{ 
pxw = w+1+(s&1); 
h = s; 
} 
else if (h-1) 
{ 
pxw = s; 
h += 1+(s&1); 
} 
else pxw = h = s; 
this.mkOvQds(cx, cy, -x+1, ox-pxw+w+wod, -oy, -h+oy+hod, pxw, h); 
ox = x; 
oy = y; 
} 
else 
{ 
tt -= aa*((y<<1)-3); 
st -= (aa<<1)*(--y); 
} 
} 
this.mkDiv(cx-a, cy-oy, s, (oy<<1)+hod); 
this.mkDiv(cx+a+wod-s+1, cy-oy, s, (oy<<1)+hod); 
} 



else 
{ 
var _a = (width-((s-1)<<1))>>1, 
_b = (height-((s-1)<<1))>>1, 
_x = 0, _y = _b, 
_aa = (_a*_a)<<1, _bb = (_b*_b)<<1, 
_st = (_aa>>1)*(1-(_b<<1)) + _bb, 
_tt = (_bb>>1) - _aa*((_b<<1)-1), 



pxl = new Array(), 
pxt = new Array(), 
_pxb = new Array(); 
pxl[0] = 0; 
pxt[0] = b; 
_pxb[0] = _b-1; 
while (y > 0) 
{ 
if (st < 0) 
{ 
st += bb*((x<<1)+3); 
tt += (bb<<1)*(++x); 
pxl[pxl.length] = x; 
pxt[pxt.length] = y; 
} 
else if (tt < 0) 
{ 
st += bb*((x<<1)+3) - (aa<<1)*(y-1); 
tt += (bb<<1)*(++x) - aa*(((y--)<<1)-3); 
pxl[pxl.length] = x; 
pxt[pxt.length] = y; 
} 
else 
{ 
tt -= aa*((y<<1)-3); 
st -= (aa<<1)*(--y); 
} 



if (_y > 0) 
{ 
if (_st < 0) 
{ 
_st += _bb*((_x<<1)+3); 
_tt += (_bb<<1)*(++_x); 
_pxb[_pxb.length] = _y-1; 
} 
else if (_tt < 0) 
{ 
_st += _bb*((_x<<1)+3) - (_aa<<1)*(_y-1); 
_tt += (_bb<<1)*(++_x) - _aa*(((_y--)<<1)-3); 
_pxb[_pxb.length] = _y-1; 
} 
else 
{ 
_tt -= _aa*((_y<<1)-3); 
_st -= (_aa<<1)*(--_y); 
_pxb[_pxb.length-1]--; 
} 
} 
} 



var ox = 0, oy = b, 
_oy = _pxb[0], 
l = pxl.length, 
w, h; 
for (var i = 0; i < l; i++) 
{ 
if (typeof _pxb[i] != "undefined") 
{ 
if (_pxb[i] < _oy || pxt[i] < oy) 
{ 
x = pxl[i]; 
this.mkOvQds(cx, cy, -x+1, ox+wod, -oy, _oy+hod, x-ox, oy-_oy); 
ox = x; 
oy = pxt[i]; 
_oy = _pxb[i]; 
} 
} 
else 
{ 
x = pxl[i]; 
this.mkDiv(cx-x+1, cy-oy, 1, (oy<<1)+hod); 
this.mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod); 
ox = x; 
oy = pxt[i]; 
} 
} 
this.mkDiv(cx-a, cy-oy, 1, (oy<<1)+hod); 
this.mkDiv(cx+ox+wod, cy-oy, 1, (oy<<1)+hod); 
} 
} 




function mkOvDott(left, top, width, height) 
{ 
var a = width>>1, b = height>>1, 
wod = width&1, hod = height&1, 
cx = left+a, cy = top+b, 
x = 0, y = b, 
aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1, 
st = (aa2>>1)*(1-(b<<1)) + bb, 
tt = (bb>>1) - aa2*((b<<1)-1), 
drw = true; 
while (y > 0) 
{ 
if (st < 0) 
{ 
st += bb*((x<<1)+3); 
tt += (bb<<1)*(++x); 
} 
else if (tt < 0) 
{ 
st += bb*((x<<1)+3) - aa4*(y-1); 
tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-3); 
} 
else 
{ 
tt -= aa2*((y<<1)-3); 
st -= aa4*(--y); 
} 
if (drw) this.mkOvQds(cx, cy, -x, x+wod, -y, y+hod, 1, 1); 
drw = !drw; 
} 
} 




一个可以在页面上随意画线、多边形、圆,填充等功能的js  (part 3) 



function mkRect(x, y, w, h) 
{ 
var s = this.stroke; 
this.mkDiv(x, y, w, s); 
this.mkDiv(x+w, y, s, h); 
this.mkDiv(x, y+h, w+s, s); 
this.mkDiv(x, y+s, s, h-s); 
} 




function mkRectDott(x, y, w, h) 
{ 
this.drawLine(x, y, x+w, y); 
this.drawLine(x+w, y, x+w, y+h); 
this.drawLine(x, y+h, x+w, y+h); 
this.drawLine(x, y, x, y+h); 
} 




function jsgFont() 
{ 
this.PLAIN = 'font-weight:normal;'; 
this.BOLD = 'font-weight:bold;'; 
this.ITALIC = 'font-style:italic;'; 
this.ITALIC_BOLD = this.ITALIC + this.BOLD; 
this.BOLD_ITALIC = this.ITALIC_BOLD; 
} 
var Font = new jsgFont(); 




function jsgStroke() 
{ 
this.DOTTED = -1; 
} 
var Stroke = new jsgStroke(); 




function jsGraphics(id, wnd) 
{ 
this.setColor = new Function('arg', 'this.color = arg.toLowerCase();'); 



this.setStroke = function(x) 
{ 
this.stroke = x; 
if (!(x+1)) 
{ 
this.drawLine = mkLinDott; 
this.mkOv = mkOvDott; 
this.drawRect = mkRectDott; 
} 
else if (x-1 > 0) 
{ 
this.drawLine = mkLin2D; 
this.mkOv = mkOv2D; 
this.drawRect = mkRect; 
} 
else 
{ 
this.drawLine = mkLin; 
this.mkOv = mkOv; 
this.drawRect = mkRect; 
} 
}; 




this.setPrintable = function(arg) 
{ 
this.printable = arg; 
if (jg_fast) 
{ 
this.mkDiv = mkDivIe; 
this.htmRpc = arg? htmPrtRpc : htmRpc; 
} 
else this.mkDiv = jg_n4? mkLyr : arg? mkDivPrt : mkDiv; 
}; 




this.setFont = function(fam, sz, sty) 
{ 
this.ftFam = fam; 
this.ftSz = sz; 
this.ftSty = sty || Font.PLAIN; 
}; 




this.drawPolyline = this.drawPolyLine = function(x, y, s) 
{ 
for (var i=0 ; i<x.length-1 ; i++ ) 
this.drawLine(x[i], y[i], x[i+1], y[i+1]); 
}; 




this.fillRect = function(x, y, w, h) 
{ 
this.mkDiv(x, y, w, h); 
}; 




this.drawPolygon = function(x, y) 
{ 
this.drawPolyline(x, y); 
this.drawLine(x[x.length-1], y[x.length-1], x[0], y[0]); 
}; 




this.drawEllipse = this.drawOval = function(x, y, w, h) 
{ 
this.mkOv(x, y, w, h); 
}; 




this.fillEllipse = this.fillOval = function(left, top, w, h) 
{ 
var a = (w -= 1)>>1, b = (h -= 1)>>1, 
wod = (w&1)+1, hod = (h&1)+1, 
cx = left+a, cy = top+b, 
x = 0, y = b, 
ox = 0, oy = b, 
aa2 = (a*a)<<1, aa4 = aa2<<1, bb = (b*b)<<1, 
st = (aa2>>1)*(1-(b<<1)) + bb, 
tt = (bb>>1) - aa2*((b<<1)-1), 
pxl, dw, dh; 
if (w+1) while (y > 0) 
{ 
if (st < 0) 
{ 
st += bb*((x<<1)+3); 
tt += (bb<<1)*(++x); 
} 
else if (tt < 0) 
{ 
st += bb*((x<<1)+3) - aa4*(y-1); 
pxl = cx-x; 
dw = (x<<1)+wod; 
tt += (bb<<1)*(++x) - aa2*(((y--)<<1)-3); 
dh = oy-y; 
this.mkDiv(pxl, cy-oy, dw, dh); 
this.mkDiv(pxl, cy+oy-dh+hod, dw, dh); 
ox = x; 
oy = y; 
} 
else 
{ 
tt -= aa2*((y<<1)-3); 
st -= aa4*(--y); 
} 
} 
this.mkDiv(cx-a, cy-oy, w+1, (oy<<1)+hod); 
}; 



this.fillPolygon = function(array_x, array_y) 
{ 
var i; 
var y; 
var miny, maxy; 
var x1, y1; 
var x2, y2; 
var ind1, ind2; 
var ints; 



var n = array_x.length; 



if (!n) return; 




miny = array_y[0]; 
maxy = array_y[0]; 
for (i = 1; i < n; i++) 
{ 
if (array_y[i] < miny) 
miny = array_y[i]; 



if (array_y[i] > maxy) 
maxy = array_y[i]; 
} 
for (y = miny; y <= maxy; y++) 
{ 
var polyInts = new Array(); 
ints = 0; 
for (i = 0; i < n; i++) 
{ 
if (!i) 
{ 
ind1 = n-1; 
ind2 = 0; 
} 
else 
{ 
ind1 = i-1; 
ind2 = i; 
} 
y1 = array_y[ind1]; 
y2 = array_y[ind2]; 
if (y1 < y2) 
{ 
x1 = array_x[ind1]; 
x2 = array_x[ind2]; 
} 
else if (y1 > y2) 
{ 
y2 = array_y[ind1]; 
y1 = array_y[ind2]; 
x2 = array_x[ind1]; 
x1 = array_x[ind2]; 
} 
else continue; 



if ((y >= y1) && (y < y2)) 
polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1); 



else if ((y == maxy) && (y > y1) && (y <= y2)) 
polyInts[ints++] = Math.round((y-y1) * (x2-x1) / (y2-y1) + x1); 
} 
polyInts.sort(integer_compare); 



for (i = 0; i < ints; i+=2) 
{ 
w = polyInts[i+1]-polyInts[i] 
this.mkDiv(polyInts[i], y, polyInts[i+1]-polyInts[i]+1, 1); 
} 
} 
}; 




this.drawString = function(txt, x, y) 
{ 
this.htm += '<div style="position:absolute;white-space:nowrap;'+ 
'left:' + x + 'px;'+ 
'top:' + y + 'px;'+ 
'font-family:' +  this.ftFam + ';'+ 
'font-size:' + this.ftSz + ';'+ 
'color:' + this.color + ';' + this.ftSty + '">'+ 
txt + 
'<\/div>'; 
} 




this.drawImage = function(imgSrc, x, y, w, h) 
{ 
this.htm += '<div style="position:absolute;'+ 
'left:' + x + 'px;'+ 
'top:' + y + 'px;'+ 
'width:' +  w + ';'+ 
'height:' + h + ';">'+ 
'<img src="' + imgSrc + '" width="' + w + '" height="' + h + '">'+ 
'<\/div>'; 
} 




this.clear = function() 
{ 
this.htm = ""; 
if (this.cnv) this.cnv.innerHTML = this.defhtm; 
}; 




this.mkOvQds = function(cx, cy, xl, xr, yt, yb, w, h) 
{ 
this.mkDiv(xr+cx, yt+cy, w, h); 
this.mkDiv(xr+cx, yb+cy, w, h); 
this.mkDiv(xl+cx, yb+cy, w, h); 
this.mkDiv(xl+cx, yt+cy, w, h); 
}; 



this.setStroke(1); 
this.setFont('verdana,geneva,helvetica,sans-serif', String.fromCharCode(0x31, 0x32, 0x70, 0x78), Font.PLAIN); 
this.color = '#000000'; 
this.htm = ''; 
this.wnd = wnd || window; 



if (!(jg_ie || jg_dom || jg_ihtm)) chkDHTM(); 
if (typeof id != 'string' || !id) this.paint = pntDoc; 
else 
{ 
this.cnv = document.all? (this.wnd.document.all[id] || null) 
: document.getElementById? (this.wnd.document.getElementById(id) || null) 
: null; 
this.defhtm = (this.cnv && this.cnv.innerHTML)? this.cnv.innerHTML : ''; 
this.paint = jg_dom? pntCnvDom : jg_ie? pntCnvIe : jg_ihtm? pntCnvIhtm : pntCnv; 
} 



this.setPrintable(false); 
} 



function integer_compare(x,y) 
{ 
return (x < y) ? -1 : ((x > y)*1); 
} 




















  JS 中,一些东西不可用的三种展现方式。 
我们在WEB项目中,有时候需要在用户点击某个东西的时候,一些东西不可用。如果在客户端实现。最简单的就是利用disabled 。下面罗列的其中三种方式:依次是:不可用(disabled);用一个空白来代替这个地方(Blank);这个区域为空(None)。具体可以查看这个Blog的源文件: 
obj.disabled = false; 



obj.style.visibility = "hidden"; 



obj.style.display = "none"; 




<SCRIPT language=javascript> 
function ShowDisableObject(obj) 
{ 
if(obj.disabled == false) 
{ 
obj.disabled = true; 
} 
else{ 
obj.disabled = false; 
} 
var coll = obj.all.tags("INPUT"); 
if (coll!=null) 
{ 
for (var i=0; i<coll.length; i++) 
{ 
  coll[i].disabled = obj.disabled; 
} 
} 
} 



function ShowBlankObject(obj) 
{ 
if(obj.style.visibility == "hidden") 
{ 
obj.style.visibility = "visible"; 
} 
else 
{ 
obj.style.visibility = "hidden"; 
} 
} 



function ShowNoneObject(obj) 
{ 
if(obj.style.display == "none") 
{ 
obj.style.display = "block"; 
} 
else 
{ 
obj.style.display = "none"; 
} 
} 



</SCRIPT> 



<P></P> 
<DIV id=Show01>dadd 
<DIV>ccc</DIV><INPUT> <INPUT type=checkbox> </DIV> 
<P><INPUT onclick=ShowDisableObject(Show01); type=button value=Disable> <INPUT id=Button1 onclick=ShowBlankObject(Show01); type=button value=Blank name=Button1> <INPUT id=Button2 onclick=ShowNoneObject(Show01); type=button value=None name=Button2> </P><!--演示代码结束//--> 




On this page I explain a simple DHTML example script that features invisibility, moving and the changing of text colour. 




Example 
Test TextMake test text invisible. 
Make test text visible. 
Move test text 50 pixels down. 
Move test text 50 pixels up. 
Change colour to red. 
Change colour to blue. 
Change colour to black. 
Change the font style to italic. 
Change the font style to normal. 
Change the font family to 'Times'. 
Change the font family to 'Arial'. 




The script 
The scripts work on this HTML element: 



<DIV ID="text">Test Text</DIV> 



#text {position: absolute; 
top: 400px; 
left: 400px; 
font: 18px arial; 
font-weight: 700; 
} 



These scripts are necessary for the three effects: 



var DHTML = (document.getElementById || document.all || document.layers); 



function getObj(name) 
{ 
if (document.getElementById) 
{ 
this.obj = document.getElementById(name); 
this.style = document.getElementById(name).style; 
} 
else if (document.all) 
{ 
this.obj = document.all[name]; 
this.style = document.all[name].style; 
} 
else if (document.layers) 
{ 
  this.obj = document.layers[name]; 
  this.style = document.layers[name]; 
} 
} 



function invi(flag) 
{ 
if (!DHTML) return; 
var x = new getObj('text'); 
x.style.visibility = (flag) ? 'hidden' : 'visible' 
} 



var texttop = 400; 



function move(amount) 
{ 
if (!DHTML) return; 
var x = new getObj('text'); 
texttop += amount; 
x.style.top = texttop; 
} 




function changeCol(col) 
{ 
if (!DHTML) return; 
var x = new getObj('text'); 
x.style.color = col; 
} 








一段实现DataGrid的“编辑”、“取消”功能脚本,目的是不产生页面刷新 
<SCRIPT language="javascript"> 
var selectRow=""; 
var selectObject; 
function EditCell(thisObject,type) 
{ 
var id = thisObject.id; 
var buttonID="Button"+type; 
var row=id.replace(buttonID,""); 
if(type==1&&selectRow.length>0&&selectObject!=null) 
{ 
EditRow(selectRow,2,selectObject); 
selectRow=""; 
} 
if(type==1){selectRow=row;selectObject=thisObject;}else{selectRow="";selectObject=null;} 
EditRow(row,type,thisObject); 
} 



function EditRow(row,type,thisObject) 
{ 
var visible1="none"; 
var visible2="inline"; 
if(type!=1) 
{ 
visible1="inline"; 
visible2="none"; 
} 
var buttonID="Button"+type; 
var style; 
var i; 
for(i=1;i<8;i++) 
{ 
var name1=row+"Img"+i; 
document.all[name1].getAttribute("style").display=visible1; 
name1=row+"Text"+i; 
var name2=row+"Checkbox"+i; 
document.all[name2].getAttribute("style").display=visible2; 
if(type!=1) 
{ 
if(document.all[name1].value==1) 
document.all[name2].checked=true; 
else 
document.all[name2].checked=false; 
} 
} 



var tdIndex = thisObject.parentElement.cellIndex; 
if(type>1) tdIndex = tdIndex -1; 
thisObject.parentElement.parentElement.cells[tdIndex].getAttribute("style").display=visible2; 



thisObject.parentElement.colSpan=type; 



var name; 
name=row+buttonID; 
document.all[name].getAttribute("style").display="none"; 



if(type==1) 
{ 
document.all[name].parentElement.parentElement.getAttribute("style").backgroundColor="LightYellow"; 
name=row+"Button2"; 
document.all[name].getAttribute("style").display="inline"; 
} 
else 
{ 
document.all[name].parentElement.parentElement.getAttribute("style").backgroundColor=""; 
name=row+"Button1"; 
document.all[name].getAttribute("style").display="inline"; 
} 
} 



</SCRIPT> 
<asp:datagrid id="GridItem" runat="server" cellPadding="0" Borderstyle="Solid" AutoGenerateColumns="False" 
Width="100%" AllowPaging="True"> 
<SelectedItemstyle BackColor="LightYellow"></SelectedItemstyle> 
<EditItemstyle CssClass="tdbg-dark" BackColor="Ivory"></EditItemstyle> 
<Itemstyle HorizontalAlign="Center" Height="23px" CssClass="tdbg"></Itemstyle> 
<Headerstyle HorizontalAlign="Center" Height="25px" CssClass="summary-title"></Headerstyle> 
<Columns> 
<asp:BoundColumn DataField="id" ReadOnly="True" HeaderText="人员编号"> 
<Headerstyle Width="120px"></Headerstyle> 
</asp:BoundColumn> 
<asp:BoundColumn ReadOnly="True" HeaderText="姓名"> 
<Headerstyle Width="120px"></Headerstyle> 
</asp:BoundColumn> 
<asp:TemplateColumn HeaderText="管理权"> 
<Headerstyle Width="60px"></Headerstyle> 
<ItemTemplate> 
<IMG id="Img1" style="DISPLAY: inline" alt="" src="Images/CheckBoxUnSelect.gif" runat="server"><INPUT id="Checkbox1" style="DISPLAY: none" type="checkbox" runat="server"> 
<INPUT id="Text1" type="text" runat="server" style="DISPLAY: none"> 
</ItemTemplate> 
</asp:TemplateColumn> 
<asp:TemplateColumn HeaderText="查询权"> 
<Headerstyle Width="60px"></Headerstyle> 
<ItemTemplate> 
<IMG id="Img2" style="DISPLAY: inline" alt="" src="Images/CheckBoxUnSelect.gif" runat="server"><INPUT id="Checkbox2" style="DISPLAY: none" type="checkbox" runat="server" NAME="Checkbox2"> 
<INPUT id="Text2" type="text" runat="server" style="DISPLAY: none" NAME="Text2"> 
</ItemTemplate> 
</asp:TemplateColumn> 
<asp:TemplateColumn HeaderText="录入权"> 
<Headerstyle Width="60px"></Headerstyle> 
<ItemTemplate> 
<IMG id="Img3" style="DISPLAY: inline" alt="" src="Images/CheckBoxUnSelect.gif" runat="server"><INPUT id="Checkbox3" style="DISPLAY: none" type="checkbox" runat="server" NAME="Checkbox3"> 
<INPUT id="Text3" type="text" runat="server" style="DISPLAY: none" NAME="Text3"> 
</ItemTemplate> 
</asp:TemplateColumn> 
<asp:TemplateColumn HeaderText="修改权"> 
<Headerstyle Width="60px"></Headerstyle> 
<ItemTemplate> 
<IMG id="Img4" style="DISPLAY: inline" alt="" src="Images/CheckBoxUnSelect.gif" runat="server"><INPUT id="Checkbox4" style="DISPLAY: none" type="checkbox" runat="server" NAME="Checkbox4"> 
<INPUT id="Text4" type="text" runat="server" style="DISPLAY: none" NAME="Text4"> 
</ItemTemplate> 
</asp:TemplateColumn> 
<asp:TemplateColumn HeaderText="删除权"> 
<Headerstyle Width="60px"></Headerstyle> 
<ItemTemplate> 
<IMG id="Img5" style="DISPLAY: inline" alt="" src="Images/CheckBoxUnSelect.gif" runat="server"><INPUT id="Checkbox5" style="DISPLAY: none" type="checkbox" runat="server" NAME="Checkbox5"> 
<INPUT id="Text5" type="text" runat="server" style="DISPLAY: none" NAME="Text5"> 
</ItemTemplate> 
</asp:TemplateColumn> 
<asp:TemplateColumn HeaderText="导出权"> 
<Headerstyle Width="60px"></Headerstyle> 
<ItemTemplate> 
<IMG id="Img6" style="DISPLAY: inline" alt="" src="Images/CheckBoxUnSelect.gif" runat="server"><INPUT id="Checkbox6" style="DISPLAY: none" type="checkbox" runat="server" NAME="Checkbox6"> 
<INPUT id="Text6" type="text" runat="server" style="DISPLAY: none" NAME="Text6"> 
</ItemTemplate> 
</asp:TemplateColumn> 
<asp:TemplateColumn HeaderText="导入权"> 
<Headerstyle Width="60px"></Headerstyle> 
<ItemTemplate> 
<IMG id="Img7" style="DISPLAY: inline" alt="" src="Images/CheckBoxUnSelect.gif" runat="server"><INPUT id="Checkbox7" style="DISPLAY: none" type="checkbox" runat="server" NAME="Checkbox7"> 
<INPUT id="Text7" type="text" runat="server" style="DISPLAY: none" NAME="Text7"> 
</ItemTemplate> 
</asp:TemplateColumn> 
<asp:ButtonColumn Text="保存" HeaderText="操作" CommandName="cmdSave"> 
<Itemstyle Font-Size="10pt"></Itemstyle> 
</asp:ButtonColumn> 
<asp:TemplateColumn> 
<ItemTemplate> 
<INPUT id="Button1" style="cursor: hand; WIDTH: 35px; COLOR: blue; BORDER-TOP-style: none; BORDER-RIGHT-style: none; BORDER-LEFT-style: none; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline; BORDER-BOTTOM-style: none" 
onclick="EditCell(this,1);" type="button" value="编辑" runat="server"><INPUT id="Button2" style="cursor: hand; DISPLAY: none; COLOR: blue; BORDER-TOP-style: none; BORDER-RIGHT-style: none; BORDER-LEFT-style: none; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline; BORDER-BOTTOM-style: none" 
onclick="EditCell(this,2);" type="button" value="取消" runat="server"> 
</ItemTemplate> 
</asp:TemplateColumn> 
</Columns> 
<Pagerstyle NextPageText="下一页" PrevPageText="上一页"></Pagerstyle> 
</asp:datagrid> 




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<title> DSTree </title> 
<META NAME="Author" CONTENT="[email]sTarsjz@hotmail.com[/email]" > 
<style> 
body,td{font:12px verdana} 
#treeBox{background-color:#fffffa;} 
#treeBox .ec{margin:0 5 0 5;} 
#treeBox .hasItems{font-weight:bold;height:20px;padding:3 6 0 6;margin:2px;cursor:hand;color:#555555;border:1px solid #fffffa;} 
#treeBox .Items{height:20px;padding:3 6 0 6;margin:1px;cursor:hand;color:#555555;border:1px solid #fffffa;} 
</style> 
<base href="http://vip.5d.cn/star/dstree/" /> 
<script> 
//code by star 20003-4-7 
var HC = "color:#990000;border:1px solid #cccccc"; 
var SC = "background-color:#efefef;border:1px solid #cccccc;color:#000000;"; 
var IO = null; 
function initTree(){ 
var rootn = document.all.menuXML.documentElement; 
var sd = 0; 
document.onselectstart = function(){return false;} 
document.all.treeBox.appendChild(createTree(rootn,sd)); 
} 
function createTree(thisn,sd){ 
var nodeObj = document.createElement("span"); 
var upobj = document.createElement("span"); 
with(upobj){ 
style.marginLeft = sd*10; 
className = thisn.hasChildNodes()?"hasItems":"Items"; 
innerHTML = "<img src=http://www.blueidea.com/img/common/logo.gif class=ec>" + thisn.getAttribute("text") +""; 



onmousedown = function(){ 
if(event.button != 1) return; 
if(this.getAttribute("cn")){ 
this.setAttribute("open",!this.getAttribute("open")); 
this.cn.style.display = this.getAttribute("open")?"inline":"none"; 
this.all.tags("img")[0].src = this.getAttribute("open")?"http://www.blueidea.com/img/common/logo.gif":"http://www.blueidea.com/img/common/logo.gif"; 
} 
if(IO){ 
IO.runtimestyle.cssText = ""; 
IO.setAttribute("selected",false); 
} 
IO = this; 
this.setAttribute("selected",true); 
this.runtimestyle.cssText = SC; 
} 
onmouseover = function(){ 
if(this.getAttribute("selected"))return; 
this.runtimestyle.cssText = HC; 
} 
onmouseout = function(){ 
if(this.getAttribute("selected"))return; 
this.runtimestyle.cssText = ""; 
} 
oncontextmenu = contextMenuHandle; 
onclick = clickHandle; 
} 



if(thisn.getAttribute("treeId") != null){ 
upobj.setAttribute("treeId",thisn.getAttribute("treeId")); 
} 
if(thisn.getAttribute("href") != null){ 
upobj.setAttribute("href",thisn.getAttribute("href")); 
} 
if(thisn.getAttribute("target") != null){ 
upobj.setAttribute("target",thisn.getAttribute("target")); 
} 



nodeObj.appendChild(upobj); 
nodeObj.insertAdjacentHTML("beforeEnd","<br/>") 



if(thisn.hasChildNodes()){ 
var i; 
var nodes = thisn.childNodes; 
var cn = document.createElement("span"); 
upobj.setAttribute("cn",cn); 
if(thisn.getAttribute("open") != null){ 
upobj.setAttribute("open",(thisn.getAttribute("open")=="true")); 
upobj.getAttribute("cn").style.display = upobj.getAttribute("open")?"inline":"none"; 
if( !upobj.getAttribute("open"))upobj.all.tags("img")[0].src ="http://www.blueidea.com/img/common/logo.gif"; 
} 



for(i=0;i<nodes.length;cn.appendChild(createTree(nodes[i++],sd+1))); 
nodeObj.appendChild(cn); 
} 
else{ 
upobj.all.tags("img")[0].src ="http://www.blueidea.com/img/common/logo.gif"; 
} 
return nodeObj; 
} 
window.onload = initTree; 
</script> 



<script> 
function clickHandle(){ 
// your code here 
} 
function contextMenuHandle(){ 
event.returnvalue = false; 
var treeId = this.getAttribute("treeId"); 
// your code here 
} 
</script> 
</HEAD> 
<BODY> 
<xml id=menuXML> 
<?xml version="1.0" encoding="GB2312"?> 
<DSTreeRoot text="根节点" open="true" href="http://" treeId="123"> 



<DSTree text="技术论坛" open="false" treeId=""> 
<DSTree text="5DMedia" open="false" href="http://" target="box" treeId="12"> 
<DSTree text="网页编码" href="http://" target="box" treeId="4353" /> 
<DSTree text="手绘" href="http://" target="box" treeId="543543" /> 
<DSTree text="灌水" href="http://" target="box" treeId="543543" /> 
</DSTree> 
<DSTree text="BlueIdea" open="false" href="http://" target="box" treeId="213"> 
<DSTree text="DreamWeaver & JS" href="http://" target="box" treeId="4353" /> 
<DSTree text="FlashActionScript" href="http://" target="box" treeId="543543" /> 
</DSTree> 
<DSTree text="CSDN" open="false" href="http://" target="box" treeId="432"> 
<DSTree text="JS" href="http://" target="box" treeId="4353" /> 
<DSTree text="XML" href="http://" target="box" treeId="543543" /> 
</DSTree> 
</DSTree> 



<DSTree text="资源站点" open="false" treeId=""> 
<DSTree text="素材屋" href="http://" target="box" treeId="12" /> 
<DSTree text="桌面城市" open="false" href="http://" target="box" treeId="213"> 
<DSTree text="壁纸" href="http://" target="box" treeId="4353" /> 
<DSTree text="字体" href="http://" target="box" treeId="543543" /> 
</DSTree> 
<DSTree text="MSDN" open="false" href="http://" target="box" treeId="432"> 
<DSTree text="DHTML" href="http://" target="box" treeId="4353" /> 
<DSTree text="HTC" href="http://" target="box" treeId="543543" /> 
<DSTree text="XML" href="" target="box" treeId="2312" /> 
</DSTree> 
</DSTree> 



</DSTreeRoot> 
</xml> 
<table style="position:absolute;left:100;top:100;"> 
<tr><td id=treeBox style="width:400px;height:200px;border:1px solid #cccccc;padding:5 3 3 5;" valign=top></td></tr> 
<tr><td style="font:10px verdana;color:#999999" align=right>by <font color=#660000>sTar</font><br/> 2003-4-8</td></tr> 
</table> 
</BODY> 
</HTML> 





针对javascript的几个对象的扩充函数 
function checkBrowser() 
{ 
this.ver=navigator.appVersion 
this.dom=document.getElementById?1:0 
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0; 
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
this.ie4=(document.all && !this.dom)?1:0; 
this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
this.ns4=(document.layers && !this.dom)?1:0; 
this.mac=(this.ver.indexOf('Mac') > -1) ?1:0; 
this.ope=(navigator.userAgent.indexOf('Opera')>-1); 
this.ie=(this.ie6 || this.ie5 || this.ie4) 
this.ns=(this.ns4 || this.ns5) 
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope) 
this.nbw=(!this.bw) 



return this; 
} 
/* 
****************************************** 
日期函数扩充 
****************************************** 
*/ 




/* 
=========================================== 
//转换成大写日期(中文) 
=========================================== 
*/ 
Date.prototype.toCase = function() 
{ 
var digits= new Array('零','一','二','三','四','五','六','七','八','九','十','十一','十二'); 
var unit= new Array('年','月','日','点','分','秒'); 



var year= this.getYear() + ""; 
var index; 
var output=""; 



////////得到年 
for (index=0;index<year.length;index++ ) 
{ 
output += digits[parseInt(year.substr(index,1))]; 
} 
output +=unit[0]; 



///////得到月 
output +=digits[this.getMonth()] + unit[1]; 



///////得到日 
switch (parseInt(this.getDate() / 10)) 
{ 
case 0: 
output +=digits[this.getDate() % 10]; 
break; 
case 1: 
output +=digits[10] + ((this.getDate() % 10)>0?digits[(this.getDate() % 10)]:""); 
break; 
case 2: 
case 3: 
output +=digits[parseInt(this.getDate() / 10)] + digits[10]  + ((this.getDate() % 10)>0?digits[(this.getDate() % 10)]:""); 
default: 



break; 
} 
output +=unit[2]; 



///////得到时 
switch (parseInt(this.getHours() / 10)) 
{ 
case 0: 
output +=digits[this.getHours() % 10]; 
break; 
case 1: 
output +=digits[10] + ((this.getHours() % 10)>0?digits[(this.getHours() % 10)]:""); 
break; 
case 2: 
output +=digits[parseInt(this.getHours() / 10)] + digits[10] + ((this.getHours() % 10)>0?digits[(this.getHours() % 10)]:""); 
break; 
} 
output +=unit[3]; 



if(this.getMinutes()==0&&this.getSeconds()==0) 
{ 
output +="整"; 
return output; 
} 



///////得到分 
switch (parseInt(this.getMinutes() / 10)) 
{ 
case 0: 
output +=digits[this.getMinutes() % 10]; 
break; 
case 1: 
output +=digits[10] + ((this.getMinutes() % 10)>0?digits[(this.getMinutes() % 10)]:""); 
break; 
case 2: 
case 3: 
case 4: 
case 5: 
output +=digits[parseInt(this.getMinutes() / 10)] + digits[10] + ((this.getMinutes() % 10)>0?digits[(this.getMinutes() % 10)]:""); 
break; 
} 
output +=unit[4]; 



if(this.getSeconds()==0) 
{ 
output +="整"; 
return output; 
} 



///////得到秒 
switch (parseInt(this.getSeconds() / 10)) 
{ 
case 0: 
output +=digits[this.getSeconds() % 10]; 
break; 
case 1: 
output +=digits[10] + ((this.getSeconds() % 10)>0?digits[(this.getSeconds() % 10)]:""); 
break; 
case 2: 
case 3: 
case 4: 
case 5: 
output +=digits[parseInt(this.getSeconds() / 10)] + digits[10] + ((this.getSeconds() % 10)>0?digits[(this.getSeconds() % 10)]:""); 
break; 
} 
output +=unit[5]; 







return output; 
} 




/* 
=========================================== 
//转换成农历 
=========================================== 
*/ 
Date.prototype.toChinese = function() 
{ 
//暂缺 
} 



/* 
=========================================== 
//是否是闰年 
=========================================== 
*/ 
Date.prototype.isLeapYear = function() 
{ 
return (0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0))); 
} 



/* 
=========================================== 
//获得该月的天数 
=========================================== 
*/ 
Date.prototype.getDayCountInMonth = function() 
{ 
var mon = new Array(12); 



   mon[0] = 31; mon[1] = 28; mon[2] = 31; mon[3] = 30; mon[4]  = 31; mon[5]  = 30; 
   mon[6] = 31; mon[7] = 31; mon[8] = 30; mon[9] = 31; mon[10] = 30; mon[11] = 31; 



if(0==this.getYear()%4&&((this.getYear()%100!=0)||(this.getYear()%400==0))&&this.getMonth()==2) 
{ 
return 29; 
} 
else 
{ 
return mon[this.getMonth()]; 
} 
} 




/* 
=========================================== 
//日期比较 
=========================================== 
*/ 
Date.prototype.Compare = function(objDate) 
{ 
if(typeof(objDate)!="object" && objDate.constructor != Date) 
{ 
return -2; 
} 



var d = this.getTime() - objDate.getTime(); 



if(d>0) 
{ 
return 1; 
} 
else if(d==0) 
{ 
return 0; 
} 
else 
{ 
return -1; 
} 
} 



/* 
=========================================== 
//格式化日期格式 
=========================================== 
*/ 
Date.prototype.format = function(formatStr) 
{ 
var str = formatStr; 



str=str.replace(/yyyy|YYYY/,this.getFullYear()); 
str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():"0" + (this.getYear() % 100)); 



str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():"0" + this.getMonth()); 
str=str.replace(/M/g,this.getMonth()); 



str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():"0" + this.getDate()); 
str=str.replace(/d|D/g,this.getDate()); 



str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():"0" + this.getHours()); 
str=str.replace(/h|H/g,this.getHours()); 



str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():"0" + this.getMinutes()); 
str=str.replace(/m/g,this.getMinutes()); 



str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():"0" + this.getSeconds()); 
str=str.replace(/s|S/g,this.getSeconds()); 



return str; 
} 




/* 
=========================================== 
//由字符串直接实例日期对象 
=========================================== 
*/ 
Date.prototype.instanceFromString = function(str) 
{ 
return new Date("2004-10-10".replace(/-/g, "\/")); 
} 



/* 
=========================================== 
//得到日期年月日等加数字后的日期 
=========================================== 
*/ 
Date.prototype.dateAdd = function(interval,number) 
{ 
var date = this; 



   switch(interval) 
   { 
       case "y" : 
           date.setFullYear(date.getFullYear()+number); 
           return date; 



       case "q" : 
           date.setMonth(date.getMonth()+number*3); 
           return date; 



       case "m" : 
           date.setMonth(date.getMonth()+number); 
           return date; 



       case "w" : 
           date.setDate(date.getDate()+number*7); 
           return date; 
       
       case "d" : 
           date.setDate(date.getDate()+number); 
           return date; 



       case "h" : 
           date.setHours(date.getHours()+number); 
           return date; 



case "m" : 
           date.setMinutes(date.getMinutes()+number); 
           return date; 



case "s" : 
           date.setSeconds(date.getSeconds()+number); 
           return date; 



       default : 
           date.setDate(d.getDate()+number); 
           return date; 
   } 
} 



/* 
=========================================== 
//计算两日期相差的日期年月日等 
=========================================== 
*/ 
Date.prototype.dateDiff = function(interval,objDate) 
{ 
//暂缺 
} 




/* 
****************************************** 
数字函数扩充 
****************************************** 
*/ 



/* 
=========================================== 
//转换成中文大写数字 
=========================================== 
*/ 
Number.prototype.toChinese = function() 
{ 
var num = this; 
   if(!/^\d*(\.\d*)?$/.test(num)){alert("Number is wrong!"); return "Number is wrong!";} 



   var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); 
   var BB = new Array("","拾","佰","仟","萬","億","点",""); 
   
   var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = ""; 



   for(var i=a[0].length-1; i>=0; i--) 
   { 
       switch(k) 
       { 
           case 0 : re = BB[7] + re; break; 
           case 4 : if(!new RegExp("0{4}\\d{"+ (a[0].length-i-1) +"}$").test(a[0])) 
                    re = BB[4] + re; break; 
           case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break; 
       } 
       if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re; 
       if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++; 
   } 



   if(a.length>1) //加上小数部分(如果有小数部分) 
   { 
       re += BB[6]; 
       for(var i=0; i<a[1].length; i++) re += AA[a[1].charAt(i)]; 
   } 
   return re; 



} 



/* 
=========================================== 
//保留小数点位数 
=========================================== 
*/ 
Number.prototype.toFixed=function(len) 
{ 



if(isNaN(len)||len==null) 
{ 
len = 0; 
} 
else 
{ 
if(len<0) 
{ 
len = 0; 
} 
} 



   return Math.round(this * Math.pow(10,len)) / Math.pow(10,len); 



} 



/* 
=========================================== 
//转换成大写金额 
=========================================== 
*/ 
Number.prototype.toMoney = function() 
{ 
// Constants: 
var MAXIMUM_NUMBER = 99999999999.99; 
// Predefine the radix characters and currency symbols for output: 
var CN_ZERO= "零"; 
var CN_ONE= "壹"; 
var CN_TWO= "贰"; 
var CN_THREE= "叁"; 
var CN_FOUR= "肆"; 
var CN_FIVE= "伍"; 
var CN_SIX= "陆"; 
var CN_SEVEN= "柒"; 
var CN_EIGHT= "捌"; 
var CN_NINE= "玖"; 
var CN_TEN= "拾"; 
var CN_HUNDRED= "佰"; 
var CN_THOUSAND = "仟"; 
var CN_TEN_THOUSAND= "万"; 
var CN_HUNDRED_MILLION= "亿"; 
var CN_SYMBOL= ""; 
var CN_DOLLAR= "元"; 
var CN_TEN_CENT = "角"; 
var CN_CENT= "分"; 
var CN_INTEGER= "整"; 

// Variables: 
var integral; // Represent integral part of digit number. 
var decimal; // Represent decimal part of digit number. 
var outputCharacters; // The output result. 
var parts; 
var digits, radices, bigRadices, decimals; 
var zeroCount; 
var i, p, d; 
var quotient, modulus; 

if (this > MAXIMUM_NUMBER) 
{ 
return ""; 
} 

// Process the coversion from currency digits to characters: 
// Separate integral and decimal parts before processing coversion: 



parts = (this + "").split("."); 
if (parts.length > 1) 
{ 
integral = parts[0]; 
decimal = parts[1]; 
// Cut down redundant decimal digits that are after the second. 
decimal = decimal.substr(0, 2); 
} 
else 
{ 
integral = parts[0]; 
decimal = ""; 
} 
// Prepare the characters corresponding to the digits: 
digits= new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE); 
radices= new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND); 
bigRadices= new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); 
decimals= new Array(CN_TEN_CENT, CN_CENT); 



// Start processing: 
outputCharacters = ""; 
// Process integral part if it is larger than 0: 
if (Number(integral) > 0) 
{ 
zeroCount = 0; 
for (i = 0; i < integral.length; i++) 
{ 
p = integral.length - i - 1; 
d = integral.substr(i, 1); 
quotient = p / 4; 
modulus = p % 4; 
if (d == "0") 
{ 
zeroCount++; 
} 
else 
{ 
if (zeroCount > 0) 
{ 
outputCharacters += digits[0]; 
} 
zeroCount = 0; 
outputCharacters += digits[Number(d)] + radices[modulus]; 
} 



if (modulus == 0 && zeroCount < 4) 
{ 
outputCharacters += bigRadices[quotient]; 
} 
} 



outputCharacters += CN_DOLLAR; 
} 



// Process decimal part if there is: 
if (decimal != "") 
{ 
for (i = 0; i < decimal.length; i++) 
{ 
d = decimal.substr(i, 1); 
if (d != "0") 
{ 
outputCharacters += digits[Number(d)] + decimals[i]; 
} 
} 
} 



// Confirm and return the final output string: 
if (outputCharacters == "") 
{ 
outputCharacters = CN_ZERO + CN_DOLLAR; 
} 
if (decimal == "") 
{ 
outputCharacters += CN_INTEGER; 
} 



outputCharacters = CN_SYMBOL + outputCharacters; 
return outputCharacters; 
} 




Number.prototype.toImage = function() 
{ 
var num = Array( 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x5,0x5,0x5,0xF}", 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0x4,0x4,0x4,0x4,0x4}", 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x4,0xF,0x1,0xF}", 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x4,0xF,0x4,0xF}", 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0x5,0x5,0xF,0x4,0x4}", 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x1,0xF,0x4,0xF}", 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x1,0xF,0x5,0xF}", 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x4,0x4,0x4,0x4}", 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x5,0xF,0x5,0xF}", 
"#define t_width 3\n#define t_height 5\nstatic char t_bits[] = {0xF,0x5,0xF,0x4,0xF}" 
); 



var str = this + ""; 
var iIndex 
var result="" 
for(iIndex=0;iIndex<str.length;iIndex++) 
{ 
result +="<img src='javascript:" & num(iIndex) & "'"> 
} 



return result; 
} 




/* 
****************************************** 
其他函数扩充 
****************************************** 
*/ 




/* 
=========================================== 
//验证类函数 
=========================================== 
*/ 
function IsEmpty(obj) 
{ 



   obj=document.getElementsByName(obj).item(0); 
   if(Trim(obj.value)=="") 
   { 
     
       if(obj.disabled==false && obj.readOnly==false) 
       { 
           obj.focus(); 
       } 
return true; 
   } 
else 
{ 
return false; 
} 
} 



/* 
=========================================== 
//无模式提示对话框 
====================== 
分享到:
评论

相关推荐

    常用的JavaScript脚本集合.doc

    这个“常用的JavaScript脚本集合”文档包含了多种实用的脚本示例,涵盖了许多常见的功能和验证类。 首先,脚本中展示了如何打开模式对话框。`doSelectUser&lt;txtId&gt;`函数通过`window.showModalDialog`方法创建一个...

    javascript 脚本集合

    JavaScript脚本集合通常包括各种常用的、实用的代码片段,帮助开发者快速实现特定功能,提高开发效率。以下是一些JavaScript脚本集合中的核心知识点: 1. **基础语法**:JavaScript的基础包括变量声明(var, let, ...

    js脚本集合有javascript脚本和正则法则

    在提供的"js脚本集合"中,包含了100多个经典常用的JavaScript脚本。这些脚本可能是用于解决各种常见问题的函数库、工具集或者特定功能的实现,例如页面动态效果、表单验证、图片轮播、时间日期处理、Ajax请求等。...

    常用javascript脚本,网站开发人员的手册

    这个"常用javascript脚本,网站开发人员的手册"显然是一份对于JavaScript开发者至关重要的资源,它可能包含了各种实用的代码片段、技巧以及最佳实践。 JavaScript是一种解释型的、面向对象的、弱类型的脚本语言,它...

    windows脚本技术集合

    通过WSH,JavaScript脚本可以直接在Windows环境下执行,进行任务调度、系统管理、批处理等。 4. **JScript.NET**:这是微软对JavaScript的一个.NET版本,它可以在.NET Framework上运行,提供更强大的功能和性能。...

    JS脚本集合 大全 JS脚本集合 大全

    这个“JS脚本集合大全”包含了多种JavaScript脚本,可能是用于各种功能的实现,比如页面特效、表单验证、数据处理等。 JavaScript的核心概念包括变量、数据类型、控制结构(如条件语句和循环)、函数、对象和类。...

    常用javascript脚本

    在"常用javascript脚本"这个主题中,我们将深入探讨一些常见的JavaScript脚本及其应用场景。 一、变量与数据类型 JavaScript支持动态数据类型,这意味着你可以在同一个变量中存储不同类型的值,如字符串、数字、...

    javascript脚本集合

    ### JavaScript脚本集合知识点概述 根据提供的文件信息,“JavaScript脚本集合”主要涵盖了JavaScript编程语言在实际应用中的一些常见功能实现和技术要点。该文档通过一系列示例代码和说明,为开发者提供了一个实用...

    JavaScript脚本参考

    在JavaScript脚本中,有以下几个重要的知识点: 1. **变量(Variables)**:JavaScript使用`var`、`let`或`const`关键字声明变量。`var`是老式的声明方式,存在作用域问题;`let`和`const`是ES6引入的,`let`用于可...

    JavaScript脚本

    字符串是JavaScript中最常用的数据类型之一,提供了丰富的方法来进行操作,如连接、查找、替换等。例如: ```javascript var myString = "Hello there"; var therePlace = myString.search("there"); document....

    常用菜单脚本收集

    "常用菜单脚本收集"这个资源显然是一份包含多种实用菜单脚本的集合,旨在帮助开发者更高效地创建交互式和动态的网页菜单。这些脚本可能包括下拉菜单、滑动菜单、响应式菜单等多种类型,都是基于JavaScript这一强大的...

    javascript常用函数集合

    这个"javascript常用函数集合"涵盖了JavaScript编程中常见的函数和概念,是学习和提升JavaScript技能的重要资源。以下是对这些常见函数和基础知识的详细解释: 1. **变量声明**:在JavaScript中,我们可以使用`var`...

    基于HTML和JavaScript的临时JavaScript脚本设计源码

    该项目是一款基于HTML和JavaScript的临时JavaScript脚本设计源码集合,包含180个文件,涵盖91个JavaScript文件、28个文本文件、20个压缩文件、18个HTML文件、4个JSON文件、3个压缩包文件、2个文档文件、2个...

    Javascript脚本实例(几百个各种脚本分类

    本资源"Javascript脚本实例(几百个各种脚本分类"提供了一个丰富的实例库,涵盖了JavaScript的各种应用场景和技巧。 首先,我们要理解JavaScript的基础知识。它由Brendan Eich在1995年为Netscape Navigator浏览器...

    javascript 实例集合

    在深入探讨《javascript实例集合》这一主题之前,我们先来简要回顾一下JavaScript的基本概念及其在现代Web开发中的核心地位。JavaScript是一种高级、解释型的编程语言,自1995年由Netscape公司的Brendan Eich设计...

    js脚本大集合(JavaScript)

    这个“js脚本大集合”显然是一份包含多种JavaScript特效和功能实现的资源包,适合初学者学习和开发者参考。 1. **基础概念**: - JavaScript主要由ECMAScript规范定义,是网景公司的Brendan Eich在1995年发明的。 ...

    javaScript脚本网站总项目 完整素材·代码简介··

    本项目“JavaScript脚本网站总项目”旨在提供一个完整的素材库和代码集合,帮助开发者全面掌握JavaScript在网站开发中的应用。 首先,我们要理解JavaScript的基本概念。它是一种解释型的、弱类型的、基于原型的语言...

    JavaScript 学习脚本

    这个"JavaScript学习脚本"涵盖了JavaScript的基础知识以及设计模式,是深入理解和掌握JavaScript的宝贵资源。 首先,让我们来深入了解JavaScript的基础知识。JavaScript的核心概念包括变量、数据类型(如字符串、...

    50个常用网页脚本源码

    标题提到的"50个常用网页脚本源码"是一份集合,包含了多种实用的网页脚本代码示例,可以帮助开发者快速构建功能丰富的网站。 首先,我们来探讨一下“彻底屏蔽鼠标右键”的脚本。在网页设计中,有时为了保护内容不被...

Global site tag (gtag.js) - Google Analytics