﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-cyantide-随笔分类-html、script</title><link>http://www.blogjava.net/cyantide/category/36411.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 31 Aug 2010 22:32:44 GMT</lastBuildDate><pubDate>Tue, 31 Aug 2010 22:32:44 GMT</pubDate><ttl>60</ttl><item><title>dhtmlxtree相关资料  (转帖)</title><link>http://www.blogjava.net/cyantide/archive/2010/08/17/329123.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Tue, 17 Aug 2010 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2010/08/17/329123.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/329123.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2010/08/17/329123.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/329123.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/329123.html</trackback:ping><description><![CDATA[经常有需要显示分层的数据结构，使用dhtmlxTree (DHTML 延展的树状结构)可以在浏览器轻易解决这类需求。它是应用Java语言树状结构菜单组件，予许在商业应用程序或网站页面，建立导引的使用者接口(树状结构 菜单)，这种应用架构，可以在在线进行信息的管理与整合，使用者能容易地找到他们需要的信息。<br />
<br />
当然，在使用过程中还是发现一点点问题。下面是我整理的一些里面常用函数的说明（只有简单的说明，如果要看详细的说明，自己查看原函数去）：<br />
<br />
构造函数<br />
dhtmlXTreeObject(htmlObject, width, height, rootId)//rootId 虚拟根节点，在界面上不会显示，一般取值0<br />
<br />
replace IMG tag with background images - solve problem with IE image caching , not works for IE6 SP1<br />
enableIEImageFix(mode)<br />
析构函数<br />
destructor()<br />
实现继承<br />
clone()<br />
节点构造函数<br />
dhtmlXTreeItemObject(itemId,itemText,parentObject,treeObject,actionHandler,mode)// mode - do not show images<br />
从xml字符串加载树<br />
loadXMLString(xmlString,afterCall)//afterCall - function which will be called after xml loading<br />
从xml文件加载树<br />
loadXML(file,afterCall)<br />
新建子节点，前三个参数为必须的<br />
insertNewItem(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs)<br />
insertNewChild(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs)<br />
<br />
节点展开与收缩：[1-close 2-open]<br />
_HideShow(itemObject,mode)<br />
获取节点状态：0 - 没有子节点, -1 - 节点合拢, 1 - 节点展开<br />
_getOpenState(node)<br />
getOpenState(itemId)<br />
获取选中的节点Id<br />
getSelectedItemId()<br />
选中节点<br />
_selectItem(node,e)<br />
获取节点的index<br />
getIndexById(itemId)<br />
设置鼠标右键点击事件<br />
setOnRightClickHandler(func)<br />
设置鼠标点击事件<br />
setOnClickHandler(func)<br />
设置节点状态改变事件<br />
setOnSelectStateChange(func)<br />
设置允许动态加载xml文件（异步加载）<br />
setXMLAutoLoading(filePath)<br />
设置checkbox点击事件<br />
setOnCheckHandler(func)<br />
设置节点展开/合拢事件<br />
setOnOpenHandler(func)<br />
设置节点开始展/合拢开事件<br />
setOnOpenStartHandler(func)<br />
设置节点展开/合拢结束事件<br />
setOnOpenEndHandler(func)<br />
设置节点双击事件<br />
setOnDblClickHandler(func)<br />
展开节点及下面所有子节点<br />
_xopenAll(node)<br />
//增加了不传递itemId的判断（1494）<br />
openAllItems(itemId)//不传递itemId参数则合拢根节点<br />
根据id获取节点<br />
_globalIdStorageFind(itemId)<br />
合拢节点及其下所有子节点<br />
_xcloseAll(node)<br />
//修改了原来逻辑的一个错误（1521）<br />
closeAllItems(itemId)//不传递itemId参数则合拢根节点<br />
为节点增加用户自定义的数据<br />
//修正一个错误（1548）<br />
setUserData(itemId,name,value)<br />
获取用户自定义的数据<br />
getUserData(itemId,name)<br />
获取节点颜色<br />
getItemColor(itemId)<br />
设置节点颜色<br />
setItemColor(itemId,defaultColor,selectedColor)<br />
获取节点名称--(with HTML formatting, if any)<br />
getItemText(itemId)<br />
获取父节点id<br />
getParentId(itemId)<br />
更改节点id<br />
changeItemId(itemId,newItemId)<br />
标记被剪切的节点<br />
doCut()<br />
粘贴被剪切的节点到新的父节点下<br />
doPaste(itemId)<br />
清空被剪切的节点<br />
clearCut()<br />
移动节点<br />
_moveNode(itemObject,targetObject)<br />
允许三种状态的复选框（全选、不选、部分选中）<br />
enableThreeStateCheckboxes(mode)// 1 - on, 0 - off;<br />
设置鼠标悬浮事件<br />
setOnMouseInHandler(func)<br />
设置鼠标移走事件<br />
setOnMouseOutHandler(func)<br />
设置是否允许显示树图片<br />
enableTreeImages=function(mode)//1 - on, 0 - off<br />
设置是否允许固定模式(对于显示复选框的界面美观一些，但没有水平滚动条)<br />
enableFixedMode(mode)// - 1 - on, 0 - off<br />
是否显示复选框<br />
enableCheckBoxes(mode, hidden)//mode 0/1 hidden 0/1<br />
设置节点图片<br />
setStdImages(image1,image2,image3)//a0 - image for node without childrens a1 - image for closed node a2 - image for opened node<br />
设置是否显示树线<br />
enableTreeLines(mode)<br />
设置图片<br />
setImageArrays(arrayName,image1,image2,image3,image4,image5)//image1 - line crossed image image2 - image with top line image3 - image with bottom line image4 - image without line image5 - single root image<br />
展开当前节点（一节）<br />
_openItem(node)<br />
openItem(itemId)<br />
合拢当前节点（一节）<br />
closeItem(itemId)<br />
获取节点的层节数<br />
getLevel(itemId)<br />
设置节点是否允许被合拢<br />
setItemCloseable(itemId,flag)//flag 0/1<br />
对于展开节点返回子节点数量，对于未加载子节点的节点（异步加载）返回true<br />
hasChildren(itemId)<br />
获取节点下的子节点数<br />
_getLeafCount(itemNode)<br />
设置节点名称<br />
setItemText(itemId,newLabel,newTooltip)<br />
获取节点tip<br />
getItemTooltip(itemId)<br />
刷新节点<br />
refreshItem(itemId)<br />
设置节点图片<br />
setItemImage2(itemId, image1,image2,image3)//image1 - node without childrens image image2 - closed node image image3 - open node image<br />
设置节点图片<br />
setItemImage(itemId,image1,image2)//image1 - node without childrens image or closed node image (if image2 specified)&nbsp; image2 - open node image (optional)<br />
获取节点下所有子节点id以逗号分割<br />
getSubItems(itemId)<br />
getAllSubItems(itemId)<br />
获取节点的所有子节点<br />
_getAllScraggyItems(node)<br />
获取选中节点的名称--(with HTML formatting, if any)<br />
getSelectedItemText()<br />
设置节点的选中状态<br />
setCheck(itemId,state)//state - checkbox state (0/1/unsure)<br />
设置节点及所有子节点的选中状态<br />
setSubChecked(itemId,state)<br />
获取节点的选中状态 return: node state (0 - unchecked,1 - checked, 2 - third state)<br />
isItemChecked(itemId)<br />
删除节点的所有子节点<br />
deleteChildItems(itemId)<br />
删除节点<br />
deleteItem(itemId,selectParent) //selectParent - If true parent of deleted item get selection, else no selected items leaving in tree.<br />
在节点下创建一个节点，前三个参数是必须的<br />
insertNewNext(itemId,newItemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs)<br />
根据index获取节点下子节点的id<br />
getChildItemIdByIndex(itemId,index)//itemId 节点id<br />
设置拖动事件<br />
setDragHandler(func)<br />
设置是否允许拖拽<br />
//mode - enabled/disabled [ can be true/false/temporary_disabled - last value mean that tree can be D-n-D can be switched to true later ]<br />
//rmode - enabled/disabled drag and drop on super root<br />
enableDragAndDrop(mode,rmode)<br />
设置是否允许IE缓存<br />
preventIECashing=function(mode)//mode - enable/disable random seed ( disabled by default )<br />
设置是否允许选中节点名称高亮显示<br />
enableHighlighting(mode)//mode - 1 - on, 0 - off<br />
是否允许图片可点击和拖拽(clickable and dragable)<br />
enableActiveImages(mode)// mode - 1 - on, 0 - off<br />
设置节点获得焦点<br />
focusItem(itemId)<br />
获取所有无子节点的节点id<br />
getAllChildless()<br />
getAllLeafs()<br />
获取所有有子节点的节点id<br />
getAllItemsWithKids（）<br />
获取所有被选中节点id，不包括第三中状态的节点（部分选中的节点）<br />
getAllChecked()<br />
获取所有被选中节点id，包括第三中状态的节点（部分选中的节点）<br />
getAllCheckedBranches()<br />
获取节点下所有未选中的节点id，不传递itemId表示从根节点开始查找<br />
getAllUnchecked(itemId)<br />
获取所有部分选中的节点id（因部分子节点选中而被选中的节点）<br />
getAllPartiallyChecked()<br />
设置节点样式<br />
setItemStyle(itemId,style_string)<br />
设置是否允许拖拽图片<br />
enableImageDrag(mode)<br />
set function called when tree item draged over another item<br />
setOnDragIn(func)<br />
设置拖拽是是否允许自动滚动<br />
enableDragAndDropScrolling(mode)<br />
<br />
<br />
补充说明：加载树时，必须确保所有节点的id不重复，否则控件会为重复id自动生成一个随机数（原id+"_"+当前日期）。<br />
增加了一个dhtmlXTreeExtend.js对原类进行扩展，增加了getAllCheckedLeaf()，getAllUcCheckedLeaf()两个函数<br />
修改了1个bug：<br />
1 增加没有选中节点时执行展开/收缩选定节点时报没有parentId的bug<br />
dhtmlXTreeObject.prototype.setSubChecked=function(itemId,state){<br />
&nbsp;&nbsp; if(itemId)<br />
&nbsp;{<br />
&nbsp; var sNode=this._globalIdStorageFind(itemId);<br />
&nbsp; this._setSubChecked(state,sNode);<br />
&nbsp; this._correctCheckStates(sNode.parentObject);<br />
&nbsp;}<br />
}<br />
<br />
<br />
1 增加了未传递itemId参数时默认从根节点展开<br />
dhtmlXTreeObject.prototype.openAllItems=function(itemId)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (itemId==window.undefined) itemId=this.rootId;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var temp=this._globalIdStorageFind(itemId);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!temp) return 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this._xopenAll(temp);<br />
&nbsp;&nbsp; };
<img src ="http://www.blogjava.net/cyantide/aggbug/329123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2010-08-17 17:17 <a href="http://www.blogjava.net/cyantide/archive/2010/08/17/329123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2 和 fckeditor 整合</title><link>http://www.blogjava.net/cyantide/archive/2010/06/28/324671.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Mon, 28 Jun 2010 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2010/06/28/324671.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/324671.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2010/06/28/324671.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/324671.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/324671.html</trackback:ping><description><![CDATA[1. 需重新编写filter,继承StrutsPrepareAndExecuteFilter<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;java.io.IOException;<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.FilterChain;<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.ServletException;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.ServletRequest;<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.ServletResponse;<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;javax.servlet.http.HttpServletRequest;<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;StrutsAndFckFilter&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;StrutsPrepareAndExecuteFilter&nbsp;{<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;doFilter(ServletRequest&nbsp;request,&nbsp;ServletResponse&nbsp;response,<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FilterChain&nbsp;chain)&nbsp;</span><span style="color: #0000ff;">throws</span><span style="color: #000000;">&nbsp;IOException,&nbsp;ServletException&nbsp;{<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletRequest&nbsp;httpRequest</span><span style="color: #000000;">=</span><span style="color: #000000;">(HttpServletRequest)request;<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">"</span><span style="color: #000000;">/fckeditor/editor/filemanager/connectors</span><span style="color: #000000;">"</span><span style="color: #000000;">.equals(httpRequest.getServletPath())){<br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chain.doFilter(request,&nbsp;response);<br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">super</span><span style="color: #000000;">.doFilter(request,&nbsp;response,&nbsp;chain);<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">27</span>&nbsp;</div>
2. 在classes目录添加 fckeditor.properties 文件<br />
&nbsp;&nbsp; 内容为 connector.userActionImpl=net.fckeditor.requestcycle.impl.EnabledUserAction<br />
<br />
3. 修改web.xml<br />
&nbsp;&nbsp; <br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">filter</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">filter-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">struts2</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">filter-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">filter-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">com.capinfo.cms.common.filter.StrutsAndFckFilter</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">filter-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">filter</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">ConnectorServlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; net.fckeditor.connector.ConnectorServlet<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-class</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">load-on-startup</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">1</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">load-on-startup</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">13</span> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-mapping</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">ConnectorServlet</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-name</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #008000;">&lt;!--</span><span style="color: #008000;">&nbsp;Do&nbsp;not&nbsp;wrap&nbsp;this&nbsp;line&nbsp;otherwise&nbsp;Glassfish&nbsp;will&nbsp;fail&nbsp;to&nbsp;load&nbsp;this&nbsp;file&nbsp;</span><span style="color: #008000;">--&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">/fckeditor/editor/filemanager/connectors/*</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">url-pattern</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">17</span> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">servlet-mapping</span><span style="color: #0000ff;">&gt;</span></div>
综上所述之后,整合完毕<br />
<br />
<img src ="http://www.blogjava.net/cyantide/aggbug/324671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2010-06-28 14:32 <a href="http://www.blogjava.net/cyantide/archive/2010/06/28/324671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jquery boxy 使用 转载</title><link>http://www.blogjava.net/cyantide/archive/2009/10/13/298030.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Tue, 13 Oct 2009 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2009/10/13/298030.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/298030.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2009/10/13/298030.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/298030.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/298030.html</trackback:ping><description><![CDATA[<p>弹出对话框：<br />
<br />
<br />
alert对话框<br />
Boxy.alert("内容",动作);<br />
$('#ask-actuator').click(function() {<br />
&nbsp;<wbr>&nbsp;<wbr>Boxy.alert("Alert! Alert!", function() { alert("Alert closed!"); });<br />
&nbsp;<wbr>&nbsp;<wbr>return false;<br />
&nbsp;<wbr>&nbsp;<wbr>});<br />
<br />
<br />
确认对话框<br />
Boxy.confirm("内容",动作,{参数});<br />
$('#ask-actuator').click(function() {<br />
&nbsp;<wbr>&nbsp;<wbr>Boxy.confirm("Please confirm?", function() { alert("Confirmed!"); });<br />
&nbsp;<wbr>&nbsp;<wbr>return false;<br />
&nbsp;<wbr>&nbsp;<wbr>});<br />
<br />
<br />
//弹出询问框<br />
Boxy.ask("内容", {"按钮值1":"按钮1", "按钮值":"按钮2"}, "动作", {参数});<br />
&nbsp;<wbr>&nbsp;<wbr>$('#ask-actuator').click(function() {<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>Boxy.ask("这里是询问内容?", ["按钮1", "按钮2", "按钮3"], function(val) {<br />
&nbsp;<wbr>&nbsp;<wbr>if(val=="按钮3"){<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>alert('哈哈，被你选了');<br />
&nbsp;<wbr>&nbsp;<wbr>}else{<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>alert("您选择了按钮"+val);<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>}<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>}, {title: "这里是标题"});<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>return false;<br />
&nbsp;<wbr>&nbsp;<wbr>});<br />
$('#ask-actuator').click(function() {<br />
&nbsp;<wbr>&nbsp;<wbr>Boxy.ask("这里是询问内容?",<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>{"1":"按钮1", "2":"按钮2"},&nbsp;<wbr>&nbsp;<wbr>//"1代表值"&nbsp;<wbr>&nbsp;<wbr>"按钮1"代表名称<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>function(val) { alert(val); },<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>{title: "这里是标题"}<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>);<br />
&nbsp;<wbr>&nbsp;<wbr>return false;<br />
});<br />
<br />
自定义弹出对话框<br />
$('#cs').click(function() {<br />
&nbsp;<wbr>&nbsp;<wbr><br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>new Boxy("&lt;div&gt;&lt;a href='#' onclick='Boxy.get(this).hide();'&gt;这里是内容&lt;/a&gt;"+<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>"&lt;a href='#' onclick='Boxy.get(this).tween(400, 400);return false;'&gt;变大&lt;/a&gt;&lt;/div&gt;",<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>{<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>title:"你好",&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//标题<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>closeText:"[关闭]",&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//关闭文字<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>modal:true,&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//背景是否变暗<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>fixed:true,&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//窗口是否固定<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>cache:true,&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//是否被遮挡<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>draggable:true,&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//这个设定窗口是否可以拖动，要定义title才有效，设定了modal就无效<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>center:true,&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//弹出对话框是否居中<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>x:50,<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>y:50,&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//设定窗口位置值为％多少，设定此后center会被覆盖<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>afterDrop:function(){},&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//关闭对话框后执行的｛IE下面关闭不了,原因不明｝<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>afterShow:function(){},&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//打开对话框后执行的<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>afterHide:function(){}&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>//隐藏对话框后执行的<br />
<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>});<br />
&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr>return false;<br />
});<br />
</p>
<img src ="http://www.blogjava.net/cyantide/aggbug/298030.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2009-10-13 10:20 <a href="http://www.blogjava.net/cyantide/archive/2009/10/13/298030.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>页面滚动特效:MARQUEE标记(转贴)</title><link>http://www.blogjava.net/cyantide/archive/2009/01/08/250468.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Thu, 08 Jan 2009 04:18:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2009/01/08/250468.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/250468.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2009/01/08/250468.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/250468.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/250468.html</trackback:ping><description><![CDATA[&lt;MARQUEE ALIGN="&#8230;"&nbsp; &nbsp;&nbsp;&nbsp;<br />
<font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">behavior="&#8230;"&nbsp;&nbsp;<br />
</font></font><font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">BGCOLOR="&#8230;"&nbsp;&nbsp;<br />
</font></font><font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">DIRECTION="&#8230;"&nbsp;&nbsp;<br />
</font></font><font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">HEIGHT="&#8230;"&nbsp;&nbsp;<br />
</font></font><font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">WIDTH="&#8230;"&nbsp;&nbsp;<br />
</font></font><font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">HSPACE="&#8230;"&nbsp;&nbsp;<br />
</font></font><font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">VSPACE="&#8230;"&nbsp;&nbsp;<br />
</font></font><font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">LOOP="&#8230;"&nbsp;&nbsp;<br />
</font></font><font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">SCROLLAMOUNT="&#8230;"&nbsp;&nbsp;<br />
</font></font><font face="宋体"><font style="font-size: 9pt">　　</font></font><font face="Verdana"><font style="font-size: 9pt">SCROLLDELAY="&#8230;"&nbsp;&nbsp;<br />
&gt;&#8230;&lt;/MARQUEE&gt;&nbsp;&nbsp;<br />
<br />
align:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">对齐方式</font></font><font face="Verdana"><font style="font-size: 9pt"> LEFT</font></font><font face="宋体"><font style="font-size: 9pt">，</font></font><font face="Verdana"><font style="font-size: 9pt">CENTER</font></font><font face="宋体"><font style="font-size: 9pt">，</font></font><font face="Verdana"><font style="font-size: 9pt">RIGHT</font></font><font face="宋体"><font style="font-size: 9pt">，</font></font><font face="Verdana"><font style="font-size: 9pt">TOP</font></font><font face="宋体"><font style="font-size: 9pt">，</font></font><font face="Verdana"><font style="font-size: 9pt">BOTTOM (</font></font><font face="宋体"><font style="font-size: 9pt">不用多说了</font></font><font face="Verdana"><font style="font-size: 9pt">)<br />
behavior:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">用于设定滚动的方式，主要由三种方式：</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
behavior="scroll":&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">表示由一端滚动到另一端；</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
behavior="slide":&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">表示由一端快速滑动到另一端，且不再重复；</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
behavior="alternate" :&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">默认值</font></font><font face="Verdana"><font style="font-size: 9pt">——</font></font><font face="宋体"><font style="font-size: 9pt">表示在两端之间来回滚动。</font></font><font face="Verdana"><font style="font-size: 9pt"></font></font><br />
<font face="Verdana"><font style="font-size: 9pt">direction:&nbsp; &nbsp; left(</font></font><font face="宋体"><font style="font-size: 9pt">默认值</font></font><font face="Verdana"><font style="font-size: 9pt">) </font></font><font face="宋体"><font style="font-size: 9pt">左</font></font><font face="Verdana"><font style="font-size: 9pt">; right </font></font><font face="宋体"><font style="font-size: 9pt">右</font></font><font face="Verdana"><font style="font-size: 9pt">;up </font></font><font face="宋体"><font style="font-size: 9pt">上</font></font><font face="Verdana"><font style="font-size: 9pt">;down </font></font><font face="宋体"><font style="font-size: 9pt">下</font></font><font face="Verdana"><font style="font-size: 9pt">;<br />
bgcolor:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">背景颜色</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
height:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">高度</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
weight:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">宽度</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
Hspace/vspace:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">分别用于设定滚动字幕的左右边框和上下边框的宽度。作用大概和</font></font><font face="Verdana"><font style="font-size: 9pt">css</font></font><font face="宋体"><font style="font-size: 9pt">中的</font></font><font face="Verdana"><font style="font-size: 9pt">margin</font></font><font face="宋体"><font style="font-size: 9pt">差不多</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
scrollamount:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">用于设定每个连续滚动文本后面的间隔，该间隔用像素表示，以上是官方说法</font></font><font face="Verdana"><font style="font-size: 9pt">,</font></font><font face="宋体"><font style="font-size: 9pt">其实就是滚动的速度，值不能太大</font></font><font face="Verdana"><font style="font-size: 9pt">,</font></font><font face="宋体"><font style="font-size: 9pt">要不从视觉角度来说</font></font><font face="Verdana"><font style="font-size: 9pt">,</font></font><font face="宋体"><font style="font-size: 9pt">是没反应的</font></font><font face="Verdana"><font style="font-size: 9pt">.</font></font><font face="宋体"><font style="font-size: 9pt">值越大速度越快，反之越慢。</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
scrolldelay:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">延迟时间</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
loop:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">这个属性大家也很熟悉，循环次数；</font></font><font face="Verdana"><font style="font-size: 9pt">loop=-1</font></font><font face="宋体"><font style="font-size: 9pt">的时候一直重复循环（默认值）</font></font><font face="Verdana"><font style="font-size: 9pt"></font></font><br />
<font face="Verdana"><font style="font-size: 9pt"></font></font><br />
<font face="宋体"><font style="font-size: 9pt">好，现在我们再来接触一些</font></font><font face="Verdana"><font style="font-size: 9pt">Dcode</font></font><font face="宋体"><font style="font-size: 9pt">的一些知识。</font></font><br />
<font face="宋体"><font style="font-size: 9pt">首先是两个鼠标事件</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
<br />
onmouseover:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">鼠标触发事件</font></font><font face="Verdana"><font style="font-size: 9pt">---</font></font><font face="宋体"><font style="font-size: 9pt">当用户将鼠标指针移动到对象内时触发</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
onmouseout:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">鼠标滑出事件</font></font><font face="Verdana"><font style="font-size: 9pt">---</font></font><font face="宋体"><font style="font-size: 9pt">当用户将鼠标指针移出对象边界时触发</font></font><br />
<font face="宋体"><font style="font-size: 9pt">这里要用到的是</font></font><font face="Verdana"><font style="font-size: 9pt"> this.start() </font></font><font face="宋体"><font style="font-size: 9pt">与</font></font><font face="Verdana"><font style="font-size: 9pt">this.stop()<br />
FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"&gt;意思就是鼠标移到</font></font><font face="Verdana"><font style="font-size: 9pt">marquee</font></font><font face="宋体"><font style="font-size: 9pt">的内容上的时候停止循环，鼠标移开</font></font><font face="Verdana"><font style="font-size: 9pt">marquee </font></font><font face="宋体"><font style="font-size: 9pt">又开始移动。</font></font><font face="Verdana"><font style="font-size: 9pt"></font></font><br />
<font face="宋体"><font style="font-size: 9pt">继续</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
innercode:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">设置或获取位于对象起始和结束标签内的</font></font><font face="Verdana"><font style="font-size: 9pt"> code<br />
innerText:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">设置或获取位于对象起始和结束标签内的文本</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
scrollLeft:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
scrollTop:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。</font></font><font face="Verdana"><font style="font-size: 9pt">PS:</font></font><font face="宋体"><font style="font-size: 9pt">大家不要想当然的以为有</font></font><font face="Verdana"><font style="font-size: 9pt">scrollRigh</font></font><font face="宋体"><font style="font-size: 9pt">和</font></font><font face="Verdana"><font style="font-size: 9pt">scrollDown </font></font><font face="宋体"><font style="font-size: 9pt">：）</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
scrollDelay:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">设置或获取字幕滚动的速度，要创建垂直滚动的字幕，请将其</font></font><font face="Verdana"><font style="font-size: 9pt"> scrollLeft </font></font><font face="宋体"><font style="font-size: 9pt">属性设定为</font></font><font face="Verdana"><font style="font-size: 9pt">0</font></font><font face="宋体"><font style="font-size: 9pt">，要创建水平滚动的字幕，请将其</font></font><font face="Verdana"><font style="font-size: 9pt"> scrollTop </font></font><font face="宋体"><font style="font-size: 9pt">属性设定为</font></font><font face="Verdana"><font style="font-size: 9pt"> 0</font></font><font face="宋体"><font style="font-size: 9pt">，这将覆盖任何脚本设置</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
scrollHeight:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">获取对象的滚动高度</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
scrollAmount:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">设置或获取介于每个字幕绘制序列之间的文本滚动像素数</font></font><font face="Verdana"><font style="font-size: 9pt"> <br />
offsetTop:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">获取对象相对于版面或由</font></font><font face="Verdana"><font style="font-size: 9pt"> offsetTop </font></font><font face="宋体"><font style="font-size: 9pt">属性指定的父坐标的计算顶端位置</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
offsetLeft:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">获取对象相对于版面或由</font></font><font face="Verdana"><font style="font-size: 9pt"> offsetParent </font></font><font face="宋体"><font style="font-size: 9pt">属性指定的父坐标的计算左侧位置</font></font><font face="Verdana"><font style="font-size: 9pt"><br />
offsetHeight:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">获取对象相对于版面或由父坐标</font></font><font face="Verdana"><font style="font-size: 9pt"> offsetParent </font></font><font face="宋体"><font style="font-size: 9pt">属性指定的父坐标的高度。</font></font><font face="Verdana"><font style="font-size: 9pt"> <br />
setInterval:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">交互时间。它从载入后</font></font><font face="Verdana"><font style="font-size: 9pt">,</font></font><font face="宋体"><font style="font-size: 9pt">每隔指定的时间就执行一次表达式</font></font><font face="Verdana"><font style="font-size: 9pt"> <br />
clearInterval:&nbsp; &nbsp; </font></font><font face="宋体"><font style="font-size: 9pt">使用</font></font><font face="Verdana"><font style="font-size: 9pt"> setInterval </font></font><font face="宋体"><font style="font-size: 9pt">方法取消先前开始的间隔事件。</font></font>
<img src ="http://www.blogjava.net/cyantide/aggbug/250468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2009-01-08 12:18 <a href="http://www.blogjava.net/cyantide/archive/2009/01/08/250468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript列子学习（转帖）</title><link>http://www.blogjava.net/cyantide/archive/2008/12/03/244216.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Wed, 03 Dec 2008 14:00:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/12/03/244216.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/244216.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/12/03/244216.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/244216.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/244216.html</trackback:ping><description><![CDATA[一、验证类<br />
1、数字验证内<br />
1.1 整数<br />
1.2 大于0的整数 （用于传来的ID的验证)<br />
1.3 负整数的验证<br />
1.4 整数不能大于iMax<br />
1.5 整数不能小于iMin<br />
2、时间类<br />
2.1 短时间，形如 (13:04:06)<br />
2.2 短日期，形如 (2003-12-05)<br />
2.3 长时间，形如 (2003-12-05 13:04:06)<br />
2.4 只有年和月。形如(2003-05,或者2003-5)<br />
2.5 只有小时和分钟,形如(12:03)<br />
3、表单类<br />
3.1 所有的表单的值都不能为空<br />
3.2 多行文本框的值不能为空。<br />
3.3 多行文本框的值不能超过sMaxStrleng<br />
3.4 多行文本框的值不能少于sMixStrleng<br />
3.5 判断单选框是否选择。<br />
3.6 判断复选框是否选择.<br />
3.7 复选框的全选，多选，全不选，反选<br />
3.8 文件上传过程中判断文件类型<br />
4、字符类<br />
4.1 判断字符全部由a-Z或者是A-Z的字字母组成<br />
4.2 判断字符由字母和数字组成。<br />
4.3 判断字符由字母和数字，下划线,点号组成.且开头的只能是下划线和字母<br />
4.4 字符串替换函数.Replace();<br />
5、浏览器类<br />
5.1 判断浏览器的类型<br />
5.2 判断ie的版本<br />
5.3 判断客户端的分辨率
<p>6、结合类<br />
6.1 email的判断。<br />
6.2 手机号码的验证<br />
6.3 身份证的验证</p>
<p><br />
二、功能类</p>
<p>1、时间与相关控件类<br />
1.1 日历<br />
1.2 时间控件<br />
1.3 万年历<br />
1.4 显示动态显示时钟效果（文本，如OA中时间）<br />
1.5 显示动态显示时钟效果 (图像，像手表) <br />
2、表单类<br />
2.1 自动生成表单<br />
2.2 动态添加，修改，删除下拉框中的元素<br />
2.3 可以输入内容的下拉框<br />
2.4 多行文本框中只能输入iMax文字。如果多输入了，自动减少到iMax个文字（多用于短信发送)</p>
<p>3、打印类<br />
3.1 打印控件<br />
4、事件类<br />
4.1 屏蔽右键<br />
4.2 屏蔽所有功能键<br />
4.3 --&gt; 和&lt;-- F5 F11,F9,F1<br />
4.4 屏蔽组合键ctrl+N<br />
5、网页设计类<br />
5.1 连续滚动的文字，图片（注意是连续的，两段文字和图片中没有空白出现）<br />
5.2 html编辑控件类<br />
5.3 颜色选取框控件<br />
5.4 下拉菜单<br />
5.5 两层或多层次的下拉菜单<br />
5.6 仿IE菜单的按钮。（效果如rongshuxa.com的导航栏目)<br />
5.7 状态栏，title栏的动态效果（例子很多，可以研究一下）<br />
5.8 双击后，网页自动滚屏<br />
6、树型结构。<br />
6.1 asp+SQL版<br />
6.2 asp+xml+sql版<br />
6.3 java+sql或者java+sql+xml<br />
7、无边框效果的制作<br />
8、连动下拉框技术<br />
9、文本排序<br />
---------------------------------------------------------------------------------------</p>
<p>一、验证类<br />
1、数字验证内<br />
1.1 整数<br />
/^(-|\+)?\d+$/.test(str)<br />
1.2 大于0的整数 （用于传来的ID的验证)<br />
/^\d+$/.test(str)<br />
1.3 负整数的验证<br />
/^-\d+$/.test(str)<br />
2、时间类<br />
2.1 短时间，形如 (13:04:06)<br />
function isTime(str)<br />
{<br />
var a = str.match(/^(\d{1,2})(?(\d{1,2})\2(\d{1,2})$/);<br />
if (a == null) {alert('输入的参数不是时间格式'); return false;}<br />
if (a[1]&gt;24 || a[3]&gt;60 || a[4]&gt;60)<br />
{<br />
alert("时间格式不对");<br />
return false<br />
}<br />
return true;<br />
}<br />
2.2 短日期，形如 (2003-12-05)<br />
function strDateTime(str)<br />
{<br />
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); <br />
if(r==null)return false; <br />
var d= new Date(r[1], r[3]-1, r[4]); <br />
return (d.getFullYear()==r[1]&amp;&amp;(d.getMonth()+1)==r[3]&amp;&amp;d.getDate()==r[4]);<br />
}<br />
2.3 长时间，形如 (2003-12-05 13:04:06)<br />
function strDateTime(str)<br />
{<br />
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2})\d{1,2})\d{1,2})$/; <br />
var r = str.match(reg); <br />
if(r==null)return false; <br />
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); <br />
return (d.getFullYear()==r[1]&amp;&amp;(d.getMonth()+1)==r[3]&amp;&amp;d.getDate()==r[4]&amp;&amp;d.getHours()==r[5]&amp;&amp;d.getMinutes()==r[6]&amp;&amp;d.getSeconds()==r[7]);<br />
}<br />
2.4 只有年和月。形如(2003-05,或者2003-5)<br />
2.5 只有小时和分钟,形如(12:03)<br />
3、表单类<br />
3.1 所有的表单的值都不能为空</p>
<p>3.2 多行文本框的值不能为空。<br />
3.3 多行文本框的值不能超过sMaxStrleng<br />
3.4 多行文本框的值不能少于sMixStrleng<br />
3.5 判断单选框是否选择。<br />
3.6 判断复选框是否选择.<br />
3.7 复选框的全选，多选，全不选，反选<br />
3.8 文件上传过程中判断文件类型<br />
4、字符类<br />
4.1 判断字符全部由a-Z或者是A-Z的字字母组成</p>
<p>4.2 判断字符由字母和数字组成。</p>
<p>4.3 判断字符由字母和数字，下划线,点号组成.且开头的只能是下划线和字母<br />
/^([a-zA-z_]{1})([\w]*)$/g.test(str)<br />
4.4 字符串替换函数.Replace();<br />
5、浏览器类<br />
5.1 判断浏览器的类型<br />
window.navigator.appName<br />
5.2 判断ie的版本<br />
window.navigator.appVersion<br />
5.3 判断客户端的分辨率<br />
window.screen.height; window.screen.width;</p>
<p>6、结合类<br />
6.1 email的判断。<br />
function ismail(mail)<br />
{<br />
return(new RegExp(/^\w+((-\w+)|(\.\w+))*\-AT-[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));<br />
}<br />
6.2 手机号码的验证<br />
6.3 身份证的验证<br />
function isIdCardNo(num)<br />
{<br />
if (isNaN(num)) {alert("输入的不是数字！"); return false;}<br />
var len = num.length, re; <br />
if (len == 15)<br />
re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);<br />
else if (len == 18)<br />
re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);<br />
else {alert("输入的数字位数不对！"); return false;}<br />
var a = num.match(re);<br />
if (a != null)<br />
{<br />
if (len==15)<br />
{<br />
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);<br />
var B = D.getYear()==a[3]&amp;&amp;(D.getMonth()+1)==a[4]&amp;&amp;D.getDate()==a[5];<br />
}<br />
else<br />
{<br />
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);<br />
var B = D.getFullYear()==a[3]&amp;&amp;(D.getMonth()+1)==a[4]&amp;&amp;D.getDate()==a[5];<br />
}<br />
if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对！"); return false;}<br />
}<br />
return true;<br />
}<br />
-------------------------------------------------------------------------------------</p>
<p>3.7 复选框的全选，多选，全不选，反选</p>
<p>全选</p>
<p><br />
全选</p>
<p>function checkAll(str)<br />
{<br />
var a = document.getElementsByName(str);<br />
var n = a.length;<br />
for (var i=0; ia[i].checked = window.event.srcElement.checked;<br />
}<br />
function checkItem(str)<br />
{<br />
var e = window.event.srcElement;<br />
var all = eval("document.hrong."+ str);<br />
if (e.checked)<br />
{<br />
var a = document.getElementsByName(e.name);<br />
all.checked = true;<br />
for (var i=0; i{<br />
if (!a[i].checked){ all.checked = false; break;}<br />
}<br />
}<br />
else all.checked = false;<br />
}</p>
<p><br />
3.8 文件上传过程中判断文件类型</p>
<p><br />
-------------------------------------------------------------------------------------<br />
１．身份证严格验证：</p>
<p>２．验证ＩＰ地址</p>
<p>function isip(s){<br />
var check=function(v){try{return (v&lt;=255 &amp;&amp; v&gt;=0)}catch(x){return false}};<br />
var re=s.split(".")<br />
return (re.length==4)?(check(re[0]) &amp;&amp; check(re[1]) &amp;&amp; check(re[2]) &amp;&amp; check(re[3])):false<br />
}</p>
<p>var s="202.197.78.129";<br />
alert(isip(s))</p>
<p>３．加sp1后还能用的无边框窗口！！</p>
<p><br />
/*--- Special Thanks For andot ---*/</p>
<p>/*<br />
This following code are designed and writen by Windy_sk <br />
You can use it freely, but u must held all the copyright items!<br />
/</p>
<p>/- Thanks For andot Again ---*/</p>
<p>var CW_width = 400;<br />
var CW_height = 300;<br />
var CW_top = 100;<br />
var CW_left = 100;<br />
var CW_url = "/";<br />
var New_CW = window.createPopup();<br />
var CW_Body = New_CW.document.body;<br />
var content = "";<br />
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;";</p>
<p>//Build Window<br />
include.startDownload(CW_url, function(source){content=source});</p>
<p>function insert_content(){<br />
var temp = "";<br />
CW_Body.style.overflow = "hidden";<br />
CW_Body.style.backgroundColor = "white";<br />
CW_Body.style.border = "solid black 1px";<br />
content = content.replace(/]*)&gt;/g,"");<br />
temp += "";<br />
temp += "";<br />
temp += "Chromeless Window For IE6 SP1";<br />
temp += "";<br />
temp += "?";<br />
temp += "0";<br />
temp += "1";<br />
temp += "x";<br />
temp += "";<br />
temp += "";<br />
temp += content;<br />
temp += "</p>
<p>";<br />
temp += "";<br />
CW_Body.innerHTML = temp;<br />
}</p>
<p>setTimeout("insert_content()",1000);</p>
<p>var if_max = true;<br />
function show_CW(){<br />
window.moveTo(10000, 10000);<br />
if(if_max){<br />
New_CW.show(CW_top, CW_left, CW_width, CW_height);<br />
if(typeof(New_CW.document.all.include)!="#ff0000"){<br />
New_CW.document.all.include.style.width = CW_width;<br />
New_CW.document.all.Max.innerText = "1";<br />
}</p>
<p>}else{<br />
New_CW.show(0, 0, screen.width, screen.height);<br />
New_CW.document.all.include.style.width = screen.width;<br />
}<br />
}</p>
<p>window.onfocus = show_CW;<br />
window.onresize = show_CW;</p>
<p>// Move Window<br />
var drag_x,drag_y,draging=false</p>
<p>function drag_move(e){<br />
if (draging){<br />
New_CW.show(e.screenX-drag_x, e.screenY-drag_y, CW_width, CW_height);<br />
return false;<br />
}<br />
}</p>
<p>function drag_down(e){<br />
if(e.button==2)return;<br />
if(New_CW.document.body.offsetWidth==screen.width &amp;&amp; New_CW.document.body.offsetHeight==screen.height)return;<br />
drag_x=e.clientX;<br />
drag_y=e.clientY;<br />
draging=true;<br />
e.srcElement.setCapture();<br />
}</p>
<p>function drag_up(e){<br />
draging=false;<br />
e.srcElement.releaseCapture();<br />
if(New_CW.document.body.offsetWidth==screen.width &amp;&amp; New_CW.document.body.offsetHeight==screen.height) return;<br />
CW_top = e.screenX-drag_x;<br />
CW_left = e.screenY-drag_y;<br />
}</p>
<p><br />
&nbsp;<br />
电话号码的验证</p>
<p>要求：<br />
(1)电话号码由数字、"("、")"和"-"构成<br />
(2)电话号码为3到8位<br />
(3)如果电话号码中包含有区号，那么区号为三位或四位<br />
(4)区号用"("、")"或"-"和其他部分隔开<br />
(5)移动电话号码为11或12位，如果为12位,那么第一位为0<br />
(6)11位移动电话号码的第一位和第二位为"13"<br />
(7)12位移动电话号码的第二位和第三位为"13"<br />
根据这几条规则，可以与出以下正则表达式：<br />
(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)</p>
<p>function PhoneCheck(s) {<br />
var str=s;<br />
var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/<br />
alert(reg.test(str));<br />
}</p>
<p>--------------------------------------------------------------------------------------</p>
<p><br />
---------------------------------------------------------------------------------</p>
<p>//检验法人代码<br />
function isCorporationCode(s){<br />
var patrn=/^(\d){15}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验登录名：只能输入5-20个以字母开头、可带数字、&#8220;_&#8221;、&#8220;.&#8221;的字串<br />
function isRegisterUserName(s)<br />
{<br />
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9._]){4,19}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}<br />
//校验用户姓名：只能输入1-30个以字母开头的字串<br />
function isTrueName(s)<br />
{<br />
var patrn=/^[^`~!@#$%^&amp;*()+-=|\\\[\]\{\}:;\'\,.&lt;&gt;/? 0-9]{2,19}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验密码：只能输入6-15个字母、数字<br />
function isPasswd(s)<br />
{<br />
var patrn=/^[a-zA-Z0-9]{6,15}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//检验体重<br />
function isAvoirdupois(s)<br />
{<br />
var patrn=/^[1-9]{1}[0-9]{0,2}$/;<br />
var patrn2=/^[1-9]{1}$/;<br />
var intPart=s.indexOf('.');<br />
var decPart=s.lastIndexOf('.');<br />
if (intPart==-1 &amp;&amp; patrn.exec(s) &amp;&amp; eval(s)&gt;=2 &amp;&amp; eval(s)&lt;=200) return true<br />
if (intPart!=decPart || intPart==0 || intPart+2!=s.length) return false<br />
if (!patrn.exec(s.substring(0,intPart)) || !patrn2.exec(s.substring(decPart+1))) return false<br />
if (eval(s)&lt;2 || eval(s)&gt;200) return false<br />
return true<br />
}</p>
<p>//校验普通电话、传真号码：可以&#8220;+&#8221;开头，除数字外，可含有&#8220;-&#8221;<br />
function isTel(s)<br />
{<br />
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验手机号码：必须以数字开头，除数字外，可含有&#8220;-&#8221;<br />
function isMobile(s)<br />
{<br />
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验地区代码<br />
function isAreaCode(s)<br />
{<br />
var patrn=/^(\d){6}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验邮政编码<br />
function isPostalCode(s)<br />
{<br />
var patrn=/^[1-9]{1}(\d){5}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验搜索关键字<br />
function isSearch(s)<br />
{<br />
var patrn=/^[^`~!@#$%^&amp;*()+=|\\\[\]\{\}:;\'\,.&lt;&gt;/? ]{1}[^`~!@$%^&amp;()+=|\\\[\]\{\}:;\'\,.&lt;&gt;?]{0,19}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验是否为ip地址<br />
function isIP(s)<br />
{<br />
var patrn=/^[0-9.]{1,20}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//检验页码是否正确<br />
function isPage(s)<br />
{<br />
var patrn=/^[1-9]{1}[0-9]{0,2}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//表单输入值错误提示<br />
function vErr(o,s){<br />
alert(s);<br />
if (o) o.focus();<br />
return false;<br />
}</p>
<p>//判断单选<br />
function chkRadio(o){<br />
for (i=0;iif (o[i].checked) return true;<br />
}<br />
return false;<br />
} <br />
//====================================表单类================================<br />
// 文件上传过程中判断文件类型<br />
/*</p>
<p>/</p>
<p>//表单的值不能为空<br />
function isNull(elem){<br />
//var pattern=/^\s+|\s+$/;<br />
if(elem.replace(/(^\s+|\s$)/g, "")==""){<br />
return false;<br />
}else{<br />
return true;<br />
}<br />
}<br />
//不能超过imax字符<br />
function imax(elem){<br />
if(elem.length&gt;imax){<br />
return false;<br />
}else{<br />
return true;<br />
}<br />
}<br />
//不能少于imix字符<br />
function imix(elem){<br />
if(elem.lengthreturn false;<br />
}else{<br />
return true;<br />
}<br />
}<br />
//输入为中文判断<br />
function isChinese(elem){<br />
var pattern=/[^\x00-\xff]/g;<br />
if(pattern.test(elem)){<br />
//包含中文<br />
return false;<br />
}else{<br />
//不包含中文<br />
return true;<br />
}<br />
}</p>
<p>/ *********************************************************************************************************************</p>
<p>.cMenu {<br />
FILTER: alpha(opacity=0);BACKGROUND-COLOR: #D6D3CE;BORDER-BOTTOM: #666666 2px solid; BORDER-LEFT: #E4E4E4 2px solid; BORDER-RIGHT: #666666 2px solid; BORDER-TOP: #E4E4E4 2px solid; COLOR: #000000; CURSOR: default; FONT-SIZE: 9pt; color:#000000;FONT-WEIGHT: normal; LINE-HEIGHT: 20px; POSITION: absolute; VISIBILITY: hidden; WIDTH: 110px<br />
}<br />
.menuitems {<br />
font-size:9pt;<br />
MARGIN: 2px;<br />
PADDING-BOTTOM: 0px;<br />
PADDING-LEFT: 15px;<br />
PADDING-RIGHT: 3px;<br />
PADDING-TOP: 0px;<br />
}</p>
<p>&lt;!--[if IE]&gt;<br />
onmouseover=highlightie5()&gt;</p>
<p>电话号码的验证</p>
<p>要求：<br />
(1)电话号码由数字、"("、")"和"-"构成<br />
(2)电话号码为3到8位<br />
(3)如果电话号码中包含有区号，那么区号为三位或四位<br />
(4)区号用"("、")"或"-"和其他部分隔开<br />
(5)移动电话号码为11或12位，如果为12位,那么第一位为0<br />
(6)11位移动电话号码的第一位和第二位为"13"<br />
(7)12位移动电话号码的第二位和第三位为"13"<br />
根据这几条规则，可以与出以下正则表达式：<br />
(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)</p>
<p><br />
&lt;script language="javascript"&gt;<br />
function PhoneCheck(s) {<br />
var str=s;<br />
var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/<br />
alert(reg.test(str));<br />
}<br />
&lt;/script&gt;<br />
&lt;input type=text name="iphone"&gt;<br />
&lt;input type=button onclick="PhoneCheck(document.all.iphone.value)" value="Check"&gt;<br />
----------------------------------------------------------------------------------------</p>
<p>&lt;%<br />
'********************************************<br />
'函数功能：正则表达式校验<br />
'参数patrn：要校验的类型<br />
' "User" - 用户名<br />
' "Truename" - 英文姓名<br />
' "Passwd" - 密码<br />
' "Tel" - 电话/传真<br />
' "Mobil" - 手机<br />
' "Date" - 日期（格式：yyyy-mm-dd）<br />
' "Email" - 电子邮件<br />
' "Postalcode" - 邮政编码<br />
' "Search" - 搜索关键字<br />
' "Int" - 整数<br />
'参数strng：要校验的字串<br />
'返回值：校验结果，正确返回true，错误返回false<br />
'********************************************<br />
Function IsVerify(patrn,strng)<br />
strng=Trim(strng)<br />
Select Case patrn<br />
Case "User" '用户名<br />
patrn="^[a-z]{1}([a-z0-9]|[._]){2,19}$"<br />
Case "Truename" '英文姓名<br />
patrn="^[a-zA-Z]{1,30}$"<br />
Case "Passwd" '密码<br />
patrn="^(\w){6,20}$"<br />
Case "Tel" '电话/传真<br />
patrn="^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$"<br />
Case "Mobil" '手机<br />
patrn="^(\d)+[-]?(\d){6,12}$"<br />
Case "Date" '日期（格式：yyyy-mm-dd）<br />
patrn="^[12]{1}(\d){3}[-][01]?(\d){1}[-][0123]?(\d){1}$"<br />
Case "Email" '电子邮件<br />
patrn="^((\w)|[-]|[.])+@(((\w)|[-])+[.])+[a-z]{2,4}$"<br />
Case "Postalcode" '邮政编码<br />
patrn="^[a-z0-9 ]{3,12}$"<br />
Case "Search" '搜索关键字<br />
patrn="^[^`~!@#$%^&amp;*()+=|\\\[\]\{\}:;\'\,.&lt;&gt;/?]{1}[^`~!@$%^&amp;()+=|\\\[\]\{\}:;\'\,.&lt;&gt;?]{0,19}$"<br />
Case "Int" '整数<br />
patrn="^[1-9]{1}[0-9]{0,6}$"<br />
Case "Array"<br />
patrn="^[0-9]{1}([0-9]|[\,]){0,150}$"<br />
End Select<br />
Dim regEx<br />
Dim Match<br />
Set regEx = New RegExp<br />
regEx.Pattern = patrn<br />
regEx.IgnoreCase = True<br />
regEx.Global = True<br />
Matches = regEx.test(strng)<br />
IsVerify = Matches<br />
Set regEx = Nothing<br />
End Function</p>
<p>'********************************************<br />
'函数功能：对输入框的特殊字串进行过滤保存<br />
'参数strPass：过滤前的字符串<br />
'返回值：过滤后的字符串<br />
'********************************************<br />
Function SQLencode(byVal strPass)<br />
strPass = Replace(strPass, "&amp;", "&amp;")<br />
strPass = Replace(strPass, "&lt;", "&lt;")<br />
strPass = Replace(strPass, "&gt;", "&gt;")<br />
strPass = Replace(strPass, """", """)<br />
strPass = Replace(strPass, "'", "'")<br />
strPass = Replace(strPass, " ", "　")<br />
strPass = Replace(strPass,chr(13)&amp;chr(10),"&lt;br/&gt;")<br />
SQLencode = strPass<br />
End Function</p>
<p>'********************************************<br />
'函数功能：对SQLencode函数过滤后的字符串进行还原<br />
'参数strPass：经过过滤后的字符串<br />
'返回值：还原的过滤前的字符串<br />
'********************************************<br />
Function SQLdecode(byVal strPass)<br />
If Not isNull(strPass) Then<br />
strPass = Replace(strPass, "&lt;", "&lt;")<br />
strPass = Replace(strPass, "&gt;", "&gt;")<br />
strPass = Replace(strPass, ""","""" )<br />
strPass = Replace(strPass, "'","'" )<br />
strPass = Replace(strPass,"&lt;br/&gt;",chr(13)&amp;chr(10))<br />
End If<br />
SQLdecode = strPass<br />
End Function</p>
<p>'********************************************<br />
'函数功能：生成随机密码（字符为数字与大小写字母集合）<br />
'参数length：密码长度<br />
'返回值：随机密码<br />
'********************************************<br />
Function random(length)<br />
Dim n,str<br />
rnds=""<br />
Randomize<br />
For i=1 To length<br />
n=Int(75*Rnd+48)<br />
If (n&gt;57 and n&lt;65) Or (n&gt;90 and n&lt;97) Then<br />
i=i-1<br />
Else<br />
rnds=rnds&amp;Chr(n)<br />
End If<br />
Next<br />
random=rnds<br />
End Function</p>
<p>'********************************************<br />
'函数功能：对密码进行加密/解密（最大长度为15位）<br />
'********************************************<br />
Function Encrypt(preString)<br />
Dim pwds,s<br />
pwds=""<br />
s=Left(preString,15)<br />
For i=1 To Len(s)<br />
seed=170-Asc(Mid(s,i,1))-i<br />
pwds=pwds &amp; Chr(seed)<br />
Next<br />
Encrypt=pwds<br />
End Function</p>
<p>'********************************************<br />
'函数功能：格式化当前时间字串<br />
'参数：无<br />
'返回值：返回当前时间的纯数字字符串方式的表示（例如：当前时间2001-10-3 2:34:6，返回字符串"20011003023406"）<br />
'********************************************<br />
Function TheDate()<br />
y=year(date())<br />
m=month(date())<br />
d=day(date())<br />
h=Hour(time())<br />
n=Minute(time())<br />
s=Second(time())<br />
If Len(m)=1 Then m="0"&amp;m<br />
If Len(d)=1 Then d="0"&amp;d<br />
If Len(h)=1 Then h="0"&amp;h<br />
If Len(n)=1 Then n="0"&amp;n<br />
If Len(s)=1 Then s="0"&amp;s<br />
thedate=y&amp;m&amp;d&amp;h&amp;n&amp;s<br />
End Function</p>
<p>'********************************************<br />
'函数功能：返回字符串的长度<br />
'参数：字符串<br />
'返回值：字符串长度<br />
'********************************************<br />
Function strLen(str)<br />
dim p_len<br />
p_len=0<br />
strlen=0<br />
if trim(str)&lt;&gt;"" then<br />
p_len=len(trim(str))<br />
for xx=1 to p_len<br />
if asc(mid(str,xx,1))&lt;0 then<br />
strlen=int(strlen) + 2<br />
else<br />
strlen=int(strlen) + 1<br />
end if<br />
next<br />
end if<br />
End Function</p>
<p>'********************************************<br />
'函数功能：发送邮件通知<br />
'参数：字符串<br />
'返回值：成功/失败<br />
'********************************************<br />
Function SendMail(ToAddress, Subject, Body)<br />
On Error Resume Next<br />
Set objMail = Server.CreateObject("JMail.Message")<br />
objMail.From = ADR_Email<br />
objMail.FromName = "ADR管理中心"<br />
objMail.Subject = Subject<br />
objMail.AddRecipient ToAddress<br />
objMail.Body = Body<br />
If objMail.Send("") Then<br />
SendMail = True<br />
Else<br />
SendMail = False<br />
End If<br />
If Err.Number&lt;&gt; 0 Then SendMail = False<br />
Set objMail = Nothing<br />
On Error Goto 0<br />
End Function<br />
%&gt;<br />
-----------------------------------------------------------------------------------</p>
<p>//检验法人代码<br />
function isCorporationCode(s){<br />
var patrn=/^(\d){15}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验登录名：只能输入5-20个以字母开头、可带数字、&#8220;_&#8221;、&#8220;.&#8221;的字串<br />
function isRegisterUserName(s)<br />
{<br />
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9._]){4,19}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}<br />
//校验用户姓名：只能输入1-30个以字母开头的字串<br />
function isTrueName(s)<br />
{<br />
var patrn=/^[^`~!@#$%^&amp;*()+-=|\\\[\]\{\}:;\'\,.&lt;&gt;/? 0-9]{2,19}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验密码：只能输入6-15个字母、数字<br />
function isPasswd(s)<br />
{<br />
var patrn=/^[a-zA-Z0-9]{6,15}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//检验体重<br />
function isAvoirdupois(s)<br />
{<br />
var patrn=/^[1-9]{1}[0-9]{0,2}$/;<br />
var patrn2=/^[1-9]{1}$/;<br />
var intPart=s.indexOf('.');<br />
var decPart=s.lastIndexOf('.');<br />
if (intPart==-1 &amp;&amp; patrn.exec(s) &amp;&amp; eval(s)&gt;=2 &amp;&amp; eval(s)&lt;=200) return true<br />
if (intPart!=decPart || intPart==0 || intPart+2!=s.length) return false<br />
if (!patrn.exec(s.substring(0,intPart)) || !patrn2.exec(s.substring(decPart+1))) return false<br />
if (eval(s)&lt;2 || eval(s)&gt;200) return false<br />
return true<br />
}</p>
<p>//校验普通电话、传真号码：可以&#8220;+&#8221;开头，除数字外，可含有&#8220;-&#8221;<br />
function isTel(s)<br />
{<br />
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验手机号码：必须以数字开头，除数字外，可含有&#8220;-&#8221;<br />
function isMobile(s)<br />
{<br />
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验地区代码<br />
function isAreaCode(s)<br />
{<br />
var patrn=/^(\d){6}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验邮政编码<br />
function isPostalCode(s)<br />
{<br />
var patrn=/^[1-9]{1}(\d){5}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验搜索关键字<br />
function isSearch(s)<br />
{<br />
var patrn=/^[^`~!@#$%^&amp;*()+=|\\\[\]\{\}:;\'\,.&lt;&gt;/? ]{1}[^`~!@$%^&amp;()+=|\\\[\]\{\}:;\'\,.&lt;&gt;?]{0,19}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//校验是否为ip地址<br />
function isIP(s)<br />
{<br />
var patrn=/^[0-9.]{1,20}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//检验页码是否正确<br />
function isPage(s)<br />
{<br />
var patrn=/^[1-9]{1}[0-9]{0,2}$/;<br />
if (!patrn.exec(s)) return false<br />
return true<br />
}</p>
<p>//表单输入值错误提示<br />
function vErr(o,s){<br />
alert(s);<br />
if (o) o.focus();<br />
return false;<br />
}</p>
//判断单选<br />
function chkRadio(o){<br />
for (i=0;i&lt;o.length;i++){<br />
if (o[i].checked) return true;<br />
}<br />
return false;<br />
} <br />
 <img src ="http://www.blogjava.net/cyantide/aggbug/244216.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-12-03 22:00 <a href="http://www.blogjava.net/cyantide/archive/2008/12/03/244216.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Table表格如何固定第一行</title><link>http://www.blogjava.net/cyantide/archive/2008/11/27/242948.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Thu, 27 Nov 2008 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/11/27/242948.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/242948.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/11/27/242948.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/242948.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/242948.html</trackback:ping><description><![CDATA[需要css和js配合使用<br />
css:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_9_88_Open_Image" onclick="this.style.display='none'; Codehighlighter1_9_88_Open_Text.style.display='none'; Codehighlighter1_9_88_Closed_Image.style.display='inline'; Codehighlighter1_9_88_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_9_88_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_9_88_Closed_Text.style.display='none'; Codehighlighter1_9_88_Open_Image.style.display='inline'; Codehighlighter1_9_88_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #800000">.theader&nbsp;</span><span id="Codehighlighter1_9_88_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">{<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />}</span><span id="Codehighlighter1_9_88_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000">white-space</span><span style="color: #000000">:</span><span style="color: #0000ff">nowrap</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;position</span><span style="color: #000000">:</span><span style="color: #0000ff">relative</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;fixl</span><span style="color: #000000">:</span><span style="color: #0000ff">expression(fixTableHeader(this))</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;</span></div>
</span><br />
js:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_28_202_Open_Image" onclick="this.style.display='none'; Codehighlighter1_28_202_Open_Text.style.display='none'; Codehighlighter1_28_202_Closed_Image.style.display='inline'; Codehighlighter1_28_202_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_28_202_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_28_202_Closed_Text.style.display='none'; Codehighlighter1_28_202_Open_Image.style.display='inline'; Codehighlighter1_28_202_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;fixTableHeader(td)&nbsp;</span><span id="Codehighlighter1_28_202_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_28_202_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;table&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;td.parentNode.parentNode.parentNode;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;div&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;table.parentNode;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;td.style.top&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;div.scrollTop&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;'px';<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;td.style.zIndex&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10000</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;td.sourceIndex;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
  <img src ="http://www.blogjava.net/cyantide/aggbug/242948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-11-27 10:42 <a href="http://www.blogjava.net/cyantide/archive/2008/11/27/242948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关闭弹出窗口时,刷新父窗口</title><link>http://www.blogjava.net/cyantide/archive/2008/07/08/213372.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Tue, 08 Jul 2008 08:58:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/07/08/213372.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/213372.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/07/08/213372.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/213372.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/213372.html</trackback:ping><description><![CDATA[<font style="background-color: #cce8cf">window.onUnload=function(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;window.opener.location.href="/xxxx.action";<br />
}</font>
 <img src ="http://www.blogjava.net/cyantide/aggbug/213372.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-07-08 16:58 <a href="http://www.blogjava.net/cyantide/archive/2008/07/08/213372.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>window.open 参数详解</title><link>http://www.blogjava.net/cyantide/archive/2008/07/02/212124.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Wed, 02 Jul 2008 08:08:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/07/02/212124.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/212124.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/07/02/212124.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/212124.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/212124.html</trackback:ping><description><![CDATA[window.open 弹出新窗口的命令； <br />
　　'page.html' 弹出窗口的文件名； <br />
　　'newwindow' 弹出窗口的名字（不是文件名），非必须，可用空''代替； <br />
　　height=100 窗口高度； <br />
　　width=400 窗口宽度； <br />
　　top=0 窗口距离屏幕上方的象素值； <br />
　　left=0 窗口距离屏幕左侧的象素值； <br />
　　toolbar=no 是否显示工具栏，yes为显示； <br />
　　menubar，scrollbars 表示菜单栏和滚动栏。 <br />
　　resizable=no 是否允许改变窗口大小，yes为允许； <br />
　　location=no 是否显示地址栏，yes为允许； <br />
　　status=no 是否显示状态栏内的信息（通常是文件已经打开），yes为允许；
 <img src ="http://www.blogjava.net/cyantide/aggbug/212124.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-07-02 16:08 <a href="http://www.blogjava.net/cyantide/archive/2008/07/02/212124.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何将复选框设置为不能使用</title><link>http://www.blogjava.net/cyantide/archive/2008/06/24/210313.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Tue, 24 Jun 2008 07:05:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/06/24/210313.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/210313.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/06/24/210313.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/210313.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/210313.html</trackback:ping><description><![CDATA[&lt;input type="checkbox" name="myOptDel" value="" disabled=true &gt;<br />
<br />
disabled属性可以使复选框不能使用
 <img src ="http://www.blogjava.net/cyantide/aggbug/210313.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-06-24 15:05 <a href="http://www.blogjava.net/cyantide/archive/2008/06/24/210313.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>showModalDialog(对话窗口)</title><link>http://www.blogjava.net/cyantide/archive/2008/06/24/210284.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Tue, 24 Jun 2008 05:22:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/06/24/210284.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/210284.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/06/24/210284.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/210284.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/210284.html</trackback:ping><description><![CDATA[<p>function selectIp(index) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; var width = 600;<br />
&nbsp;&nbsp;&nbsp;&nbsp; var height = 500;<br />
&nbsp;&nbsp;&nbsp;&nbsp; var left = (screen.width - width) / 2;<br />
&nbsp;&nbsp;&nbsp;&nbsp; var top = (screen.height - height) / 2 - 40;<br />
&nbsp;&nbsp;&nbsp;&nbsp; var style = 'status=yes,resizable=no,width=' +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width + ',height=' + height + ',top=' + top + ',left=' + left;<br />
&nbsp;&nbsp;&nbsp;&nbsp; v = showModalDialog('getIpAddress.asp', '', <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'dialogWidth:' + width + 'px;dialogHeight:' + height + 'px;dialogLeft:' + left +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'px;dialogTop:' + top + 'px;center:yes;help:no;resizable:no;status:no;scroll:no');<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(v) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;document.getElementById('ip'+index).value = v;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp; &nbsp;}</p>
 <img src ="http://www.blogjava.net/cyantide/aggbug/210284.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-06-24 13:22 <a href="http://www.blogjava.net/cyantide/archive/2008/06/24/210284.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>html标签的值在发生属性更改的同时触发的方法</title><link>http://www.blogjava.net/cyantide/archive/2008/06/19/209178.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Thu, 19 Jun 2008 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/06/19/209178.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/209178.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/06/19/209178.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/209178.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/209178.html</trackback:ping><description><![CDATA[onpropertychange 当在对象上发生属性更改时触发。<br />
<br />
<br />
使用该方法可达到:<br />
&nbsp;&nbsp;&nbsp;&nbsp;更新一个文本框,另一个文本框动态改变的效果 
 <img src ="http://www.blogjava.net/cyantide/aggbug/209178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-06-19 15:52 <a href="http://www.blogjava.net/cyantide/archive/2008/06/19/209178.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载:dhtmlxtree文档翻译</title><link>http://www.blogjava.net/cyantide/archive/2008/06/12/207379.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Thu, 12 Jun 2008 06:31:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/06/12/207379.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/207379.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/06/12/207379.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/207379.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/207379.html</trackback:ping><description><![CDATA[页面上初始化树 <br />
&lt;div id="treeBox" style="width:200;height:200"&gt;&lt;/div&gt; <br />
&lt;script&gt; <br />
tree=new dhtmlXTreeObject(document.getElementById('treeBox'),"100%","100%",0); <br />
tree.setImagePath("gfx/"); <br />
tree.enableCheckBoxes(false); <br />
tree.enableDragAndDrop(true); <br />
&lt;/script&gt; <br />
构造器的参数如下: <br />
1.应该将树放置的位置,在调用构造器之前应当为初始化 <br />
2.树的宽度 <br />
3.树的高度 <br />
4.标明父节点到树根节点的深度 <br />
特殊参数: <br />
1.setImagePath(url):指明了树图标的路径 <br />
2.enableCheckBoxes(mode):多选框是否有效,默认显示多选框 <br />
3.enableDragAndDrop(mode):是否允许拖放动作 <br />
<br />
<br />
<br />
<br />
设置Event Handlers <br />
&lt;div id="treeBox" style="width:200;height:200"&gt;&lt;/div&gt; <br />
&lt;script&gt; <br />
tree=new dhtmlXTreeObject(document.getElementById('treeBox'),"100%","100%",0); <br />
... <br />
tree.setOnClickHandler(onNodeSelect);//set function object to call on node select <br />
//see other available event handlers in API documentation <br />
function onNodeSelect(nodeId){ <br />
... <br />
} <br />
&lt;/script&gt; <br />
大多数情况下制定event handlers的参数会得到一些值.关于被传递的变量细节部分请参考API documentation. <br />
<br />
<br />
<br />
<br />
用Script加入节点: <br />
&lt;script&gt; <br />
tree=new dhtmlXTreeObject('treeBox',"100%","100%",0); <br />
... <br />
tree.insertNewChild(0,1,"New Node 1",0,0,0,0,"SELECT,CALL,TOP,CHILD,CHECKED"); <br />
tree.insertNewNext(1,2,"New Node 2",0,0,0,0,"CHILD,CHECKED"); <br />
&lt;/script&gt; <br />
1.参数0将会被传递给函数的参数4-7(调用select,image功能)的作用是使用他们的默认值. <br />
2.第8个参数使用','分割 <br />
3.SELECT:在插入后移动光标到该节点 <br />
4.TOP:在TOP位置加入节点 <br />
5:CHIld:节点为儿子 <br />
6.CHECKED:多选框被选中(如果存在的话) <br />
<br />
<br />
<br />
<br />
从XML中引导数据: <br />
&lt;script&gt; <br />
tree=new dhtmlXTreeObject('treeBox',"100%","100%",0); <br />
tree.setXMLAutoLoading("http://127.0.0.1/xml/tree.xml"); <br />
tree.loadXML("http://127.0.0.1/xml/tree.xml");//load root level from xml <br />
&lt;/script&gt; <br />
1.被打开节点的ID将会被加入到initXMLAutoLoading(url)中去 <br />
2.当被调用的时候没有额外的ID加入到loadXML(url)中 <br />
3.当调用没有参数loadXML()时,你将会使用initXMLAutoLoading(url)中的url <br />
XML Syntax: <br />
&lt;?xml version='1.0' encoding='iso-8859-1'?&gt; <br />
&lt;tree id="0"&gt; <br />
&lt;item text="My Computer" id="1" child="1" im0="my_cmp.gif" im1="my_cmp.gif" im2="my_cmp.gif" call="true" select="yes"&gt; <br />
&lt;userdata name="system"&gt;true&lt;/userdata&gt; <br />
&lt;item text="Floppy (A:)" id="11" child="0" im0="flop.gif" im1="flop.gif" im2="flop.gif"/&gt; <br />
&lt;item text="Local Disk (C:)" id="12" child="0" im0="drv.gif" im1="drv.gif" im2="drv.gif"/&gt; <br />
&lt;/item&gt; <br />
&lt;item text="Recycle Bin" id="4" child="0" im0="recyc.gif" im1="recyc.gif" im2="recyc.gif"/&gt; <br />
&lt;/tree&gt; <br />
在PHP的语法中: <br />
&lt;?php <br />
if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") ) { <br />
header("Content-type: application/xhtml+xml"); } else { <br />
header("Content-type: text/xml"); <br />
} <br />
echo("&lt;?xml version=\"1.0\" encoding=\"iso-8859-1\"?&gt;\n"); <br />
?&gt; <br />
&lt;tree&gt;节点是强制的,他表明引导数据块的父亲.按照ID参数指定他的父亲.引导root的时候你需要指定tree对象:new myObjTree(boxObject,width,height,0) <br />
&lt;item&gt;可以包含子元素(为了一次load更多),该标签的强制参数如下: <br />
1.text:节点的名称 <br />
2.id:节点的id <br />
可选参数如下: <br />
3tooltip:节点的提示 <br />
4im0:没有儿子的节点图片(节点依靠setImagePath(url)中指定的路径来得到图片) <br />
5.im1:打开有儿子节点时的图片 <br />
6.im2:关闭有儿子节点的图片 <br />
7:acolor:没有选择元素的颜色 <br />
8:scolor:选择元素后的颜色 <br />
9:select:在导入节点的时候选择 <br />
10:open:将节点展开 <br />
11:call:调用函数在选择节点的时候 <br />
12:checked:如果多选框存在的时候选择 <br />
13:child:如果节点有儿子的时候为1否则为0 <br />
14:imheight:图标的高度 <br />
15:imwidth:图标的宽度 <br />
在xml中直接设定userdata&lt;userdata&gt; <br />
他有一个参数:name,value来指定他的值 <br />
<br />
<br />
<br />
<br />
<br />
给节点设定自定义图标: <br />
这里有两种方法来给节点设定自定义图标.它依赖欲你加元素的方式 <br />
注:依靠setImagepath(url)方法来得到图片 <br />
javascript方法:使用insertNewChild(...)或者insertNewNext(...)方法 <br />
&lt;script&gt; <br />
var im0 = "doc.gif";//icon to show if node contains no children <br />
var im1 = "opened.gif";//if node contains children and opened <br />
var im2 = "closed.gif";//if node contains children and closed <br />
tree.insertNewItem(0,1,"New Node 1",0,im0,im1,im2); <br />
tree.insertNewNext(1,2,"New Node 2",0,"txt.gif","opened.gif","closed.gif"); <br />
&lt;/script&gt; <br />
XML 方法: 使用&lt;item&gt;标签 <br />
&lt;?xml version='1.0' encoding='iso-8859-1'?&gt; <br />
&lt;tree id="0"&gt; <br />
&lt;item text="My Computer" id="1" child="1" im0="doc.gif" im1="my_opened.gif" im2="my_closed.gif"&gt; <br />
&lt;/tree&gt; <br />
im0:没有儿子的节点图片 <br />
im1:打开节点的图片 <br />
im2:关闭节点的图片 <br />
<br />
<br />
<br />
<br />
<br />
构建动态的树: <br />
如果你的树中包含大量的节点(或者你并不想花费时间来导入隐藏的节点).那么会有更好一点的方法来导入节点.针对这个效果我们使用xml创建动态导入节点的深度. <br />
察看章节:"使用XML导入数据" <br />
或者更多的细节:在我的知识库中的文章"在dhtmltree V.1.x动态导入数据" <br />
操作节点: <br />
在树对象的方法中很少的操作树节点的例子 <br />
&lt;script&gt; <br />
tree=new dhtmlXTreeObject('treeboxbox_tree',"100%","100%",0); <br />
... <br />
var sID = tree.getSelectedItemId();//get id of selected node <br />
tree.setLabel(sID,"New Label");//change label of selecte node <br />
tree.setItemColor(sID,'blue','red');//set colors for selected node's label (for not selected state and for selected state) <br />
tree.openItem(sID);//expand selected node <br />
tree.closeItem(sID);//close selected node <br />
tree.changeItemId(sID,100);//change id of selected node to 100 <br />
alert("This node has children: "+tree.hasChildren(100));//show alert with information if this node has children <br />
&lt;/script&gt; <br />
<br />
<br />
<br />
<br />
序列树 <br />
序列化方法允许在XML表达式中得到树.依靠反射直接序列化生成树 <br />
&lt;script&gt; <br />
tree.setSerializationLevel(userDataFl,itemDetailsFl); <br />
var myXmlStr = tree.serializeTree(); <br />
<br />
&lt;/script&gt; <br />
1.没有参数:id,open,select,text,child <br />
2.userDataFI true-userdata <br />
3.itemDetailsFI true -im0,im1,im2,acolor,scolor,checked,open <br />
<br />
<br />
<br />
<br />
Tooltips: <br />
这里有三种方法来给节点设置tooltips: <br />
1.使用node label(text属性)作为tooltip-enableAutoTooltips(mode) -默认为false <br />
2.使用tooltip属性 <br />
3.setItemText(itemId,newLabel,newTooltip) <br />
<br />
<br />
<br />
<br />
移动节点: <br />
依靠程序来移动节点可以采用下列方法: <br />
移动upp/down/left <br />
tree.moveItem(nodeId,mode) <br />
1."down":向下移动节点(不需要注意层次) <br />
2."up":向上移动节点 <br />
3:"left":向上一层移动 <br />
<br />
<br />
<br />
<br />
直接移动到某个位置:(在树内) <br />
tree.moveItem(nodeId,mode,targetId) <br />
1."item_child":将节点置为第三个参数的子节点 <br />
2:"item_sibling":将节点置为第三个参数的兄弟姐妹 <br />
3.targetId:目标节点的id <br />
<br />
<br />
<br />
<br />
移动节点到某个位置(另外一个树) <br />
tree.moveItem(nodeId,mode,targetId,targetTree) <br />
targetId:目标节点的id <br />
targetTree:目标树 <br />
<br />
<br />
<br />
剪切/粘贴 <br />
使用doCut(),doPaste(id):但是只可以使用到选择的item中 <br />
开发者可以在某个位置删除节点然后在另外一个位置创建他 <br />
而用户尽可能的使用拖放功能来移动元素 <br />
<br />
<br />
<br />
<br />
节点计数器: <br />
也有可能在节点的标签上显示儿子的个数,可以使用以下方法激活它: <br />
&lt;script&gt; <br />
tree.setChildCalcMode(mode); <br />
&lt;/script&gt; <br />
可能的mode为: <br />
1."child":在该深度所有的儿子 <br />
2."leafs":在该深度所有的叶子 <br />
3:"childrec":所有的儿子 <br />
4:"leafsrec":所有的叶子 <br />
5:"disabled":什么也没有 <br />
其他相关的方法: <br />
_getChildCounterValue(itemId) - 得到当前计数器的值 <br />
setChildCalcHTML(before,after) - 改变计数器的值 <br />
当你在动态导入数据时如果你要使用计数,请在xml中使用child属性 <br />
<br />
<br />
<br />
<br />
smart xml解析: <br />
smart xml解析很简单:在客户端完整的树结构被导入,但是仅仅显示被指定应该显示的. <br />
这个将会减少导入时间和大树的性能.与动态导入相反,完整的树结构在大多数的script方法中是可行的. <br />
例如对所有节点的搜索.激活smart xml parsing使用以下方法: <br />
&lt;script&gt; <br />
tree.enableSmartXMLParsing(true);//false to disable <br />
&lt;/script&gt; <br />
smart xml parsing如果在数被完全展开的时候不会执行. <br />
<br />
<br />
<br />
<br />
<br />
多选框: <br />
dhtmlxTree支持三种状态的多选框. <br />
三种状态为:选择/不选择/一些子被选择(不是全部),激活多选框使用以下方法: <br />
&lt;script&gt; <br />
tree.enableThreeStateCheckboxes(true)//false为失效 <br />
&lt;/script&gt; <br />
多选框失效:disableCheckbox(id,state) <br />
一些节点可以隐藏checkboxes:showItemCheckbox(id,state)(nocheckbox xml属性) <br />
<br />
<br />
<br />
<br />
拖放技巧: <br />
有三种拖放模式setDragBehavior(mode) <br />
1.拖为儿子:"child" <br />
2.拖为姐妹:"sibling" <br />
3.混合模式(previous要激活):"complex" <br />
加两个模式: <br />
1.公用的拖放多个 <br />
2.拷贝多个:tree.enableMercyDrag(1/0) <br />
事件处理:Event handlers <br />
在进行拖放多个前使用onDrug事件:setDragHandler(func) <br />
如果func不能返回true,那么放将会被取消 <br />
当放发生的时候会触发另外一个事件onDrop:使用setDropHandler(func) <br />
在所有的event handlers中会有5个参数传给func对象 <br />
1.被拖的节点id <br />
2.目标节点的id <br />
3.如果放为姐妹时,前一个节点的id <br />
4.被拖节点所属树 <br />
5.目标节点所属树 <br />
在iframes中的拖放: <br />
在iframes中的拖放多个默认是可以的. <br />
所有你需要额外做的就是在没有树存在的地方插入下列代码 <br />
&lt;script src="js/dhtmlXCommon.js"&gt;&lt;/script&gt; <br />
&lt;script&gt; <br />
new dhtmlDragAndDropObject(); <br />
&lt;/script&gt; <br />
<br />
<br />
<br />
<br />
考虑到dhtml的性能低下问题,我们介绍两种方式来提高性能 <br />
1.动态导入 <br />
2.smart XML 解析 <br />
确认你的树有良好的组织.在同一个深度插入大量的元素会导致可见性的提升和性能的降低 <br />
菜单上下文: <br />
这里是在dhtmltree中创建上下文菜单 <br />
菜单的内容可以在XML/script中设定. <br />
因为改变上下文的菜单内容依靠树元素 <br />
所以开发者可以实现相同菜单或者不同元素使用不同菜单的隐藏/显示 <br />
菜单上下文的开启如下: <br />
&lt;script&gt; <br />
//init menu <br />
aMenu=new dhtmlXContextMenuObject('120',0,"Demo menu"); <br />
aMenu.menu.setGfxPath("../imgs/"); <br />
aMenu.menu.loadXML("menu/_context.xml"); <br />
aMenu.setContextMenuHandler(onMenuClick); <br />
<br />
//init tree <br />
tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0); <br />
... <br />
tree.enableContextMenu(aMenu); //link context menu to tree <br />
function onMenuClick(id){ <br />
alert("Menu item "+id+" was clicked"); <br />
} <br />
&lt;/script&gt; <br />
<br />
<br />
<br />
<br />
<br />
刷新节点 <br />
1.refreems(itemIdList,source)仅仅刷新节点列表(不包括他们的儿子) <br />
2.refreem(itemId) ,刷新元素的儿子.在这里自动导入将会被激活 <br />
节点排序: <br />
你可以排序在dhtmlTree pro(必须使用dhtmlXTree_sb.js),使用以下方法: <br />
tree.sortTree(nodeId,order,all_levels); <br />
1.nodeId:开始排序的父节点(可以对整棵树排序) <br />
2.order:ASC/DES <br />
3.all_levles:如果为true,则所有子都会执行 <br />
自定义排序: <br />
//define your comparator (in our case it compares second words in label) <br />
function mySortFunc(idA,idB){ <br />
a=(tree.getItemText(idA)).split(" ")[1]||""; <br />
b=(tree.getItemText(idB)).split(" ")[1]||""; <br />
return ((a&gt;b)?1:-1); <br />
} <br />
tree = new ... <br />
//attach your comparator to the tree <br />
tree.setCustomSortFunction(mySortFunc); <br />
比较两个节点IDs,如果自定义比较被指定,则sortTree(...)方法将会使用它 <br />
<br />
<br />
<br />
<br />
<br />
<br />
搜索功能: <br />
dhtmlTree允许使用节点的lable来做查询任务 <br />
也对Smart XML解析支持 <br />
tree.findItem(searchString); //find item next to current selection <br />
tree.findItem(searchString,1,1)//find item previous to current selection <br />
tree.findItem(searchString,0,1)//search from top <br />
<br />
<br />
<br />
<br />
<br />
Multiline 树元素 <br />
允许显示在multiline模式.推荐使用关闭lines <br />
tree.enableTreeLines(false); <br />
tree.enableMultiLineItems(true); <br />
<br />
<br />
<br />
树的Icon: <br />
使用setItemImage,setItemImage2或者xml(im0,im1,im2 ) <br />
设定ICON的大小: <br />
&lt;item ... imheight="Xpx" imwidth="Xpx"&gt;&lt;/item&gt; <br />
tree.setIconSize(w,h);//set global icon size <br />
tree.setIconSize(w,h,itemId)//set icon size for particular item <br />
<br />
<br />
<br />
<br />
<br />
在dhtmlTree中的错误处理 <br />
function myErrorHandler(type, desc, erData){ <br />
alert(erData[0].status) <br />
} <br />
dhtmlxError.catchError("ALL",myErrorHandler); <br />
支持错误类型: <br />
1."ALL" <br />
2."LoadXML" <br />
处理下列参数 <br />
type:string <br />
desc:错误描述 <br />
erData:错误的相关数组对象 
 <img src ="http://www.blogjava.net/cyantide/aggbug/207379.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-06-12 14:31 <a href="http://www.blogjava.net/cyantide/archive/2008/06/12/207379.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转载:页面树形控件dhtmlxTree、mztreeview及xtree比较分析</title><link>http://www.blogjava.net/cyantide/archive/2008/06/12/207376.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Thu, 12 Jun 2008 06:25:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/06/12/207376.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/207376.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/06/12/207376.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/207376.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/207376.html</trackback:ping><description><![CDATA[/***********本人原创，欢迎转载，转载请保留本人信息*************/<br />
作者：王力猛 (wallimn)<br />
电邮：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#119;&#97;&#108;&#108;&#105;&#109;&#110;&#64;&#115;&#111;&#104;&#117;&#46;&#99;&#111;&#109;">wallimn@sohu.com</a><br />
博客：<a href="http://wallimn.bokee.com/">http://wallimn.bokee.com</a><br />
　　　<a href="http://blog.csdn.net/wallimn">http://blog.csdn.net/wallimn</a><br />
时间：2006-11-21<br />
/***********本人原创，欢迎转载，转载请保留本人信息*************/<br />
　　这两天整B/S的东西要在网页上用树来展示层次结构，去网上找了找，找到三个：xtree、mztreeview10(梅花雪树)以及dhtmlxTree.花了一些时间对这三个东西进行了一下测试分析。<br />
　　1.dhtmxTree<br />
　　优点：功能非常强，尤其应对树是动态变化的情况，提供了大量的API：比如添加节点、修改节点标题样式及图标、CheckBox功能、节点的查找定位以及拖动，树数据是从特定格式的XML文件（或字符串）中装载。<br />
　　缺点：正因为功能非常强，所以效率有些低，当节点数达1700多的时候，IE会出&#8220;装载时间过长，是否继续等待&#8221;的提示，选继续装载，可以装载完成，但节点的展开非常的慢。<br />
　　2.mztreeview1.0<br />
　　优点：这个树还是很有特点的，它的数据是一次性加载、异步显示的，也没有对cookie进行任何的操作，效率很高，据官方称：MzTreeView 1.0 在节点量三万至五万以上非常具有优势。<br />
　　缺点：这个树好象不是设计用来满足节点动态变化这个需求的，应该主要设计用来展示结构层次定死了的树。树的加载是通过调用document.write()来实现的。<br />
　　3.xtree<br />
　　这个树跟2有些相似，但多了一个在cookie中保存状态的功能，刷新、前进又后退回去，不会改变树的节点展开、关闭形态，也就说树会保持外观形态。2和3的效率我没有进行测试，但分析应该是2强于3吧。xtree我有同事用，说效率还可以，比dtree强很多。<br />
　　结论：对要进行较多的操作，树是动态变化的，而节点数又不太多的时候，dhtmxTree是不二的选择；而树是静态不变的，不需要在COOKIE中保存状态，那就用mztreeview了，mztreeview应对节点多的静态树有相当大的优势；xtree是三个产品中唯一使用到cookie的，这是它的显著特点，有这个需求，当然选它了。<br />
　　我对dhtmlxTree进行了一点小改造，就是加了个在选中节点前添加节点的功能（原来只有添加为后面的同级节点或子节点的功能），这个应该是树节点添加操作中常见的功能，使用dhtmlxTree又需要这个功能的朋友请与我联系。&nbsp;
  <img src ="http://www.blogjava.net/cyantide/aggbug/207376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-06-12 14:25 <a href="http://www.blogjava.net/cyantide/archive/2008/06/12/207376.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>number类型正则验证 (20,2)</title><link>http://www.blogjava.net/cyantide/archive/2008/06/03/205574.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Tue, 03 Jun 2008 07:44:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/06/03/205574.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/205574.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/06/03/205574.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/205574.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/205574.html</trackback:ping><description><![CDATA[<font style="background-color: #cce8cf">^(([1-9]\d{0,17})|0)(\.\d{1,2})?$</font><br />
 <img src ="http://www.blogjava.net/cyantide/aggbug/205574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-06-03 15:44 <a href="http://www.blogjava.net/cyantide/archive/2008/06/03/205574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>window.open使用</title><link>http://www.blogjava.net/cyantide/archive/2008/06/01/205164.html</link><dc:creator>cyantide</dc:creator><author>cyantide</author><pubDate>Sun, 01 Jun 2008 08:45:00 GMT</pubDate><guid>http://www.blogjava.net/cyantide/archive/2008/06/01/205164.html</guid><wfw:comment>http://www.blogjava.net/cyantide/comments/205164.html</wfw:comment><comments>http://www.blogjava.net/cyantide/archive/2008/06/01/205164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cyantide/comments/commentRss/205164.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cyantide/services/trackbacks/205164.html</trackback:ping><description><![CDATA[<p><span>&lt;SCRIPT LANGUAGE="javascript"&gt;&nbsp; <br />
&lt;!--&nbsp; <br />
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no')&nbsp; <br />
--&gt;&nbsp; <br />
&lt;/SCRIPT&gt;&nbsp; </span></p>
<p><br />
解释：&nbsp;<br />
&lt;SCRIPT LANGUAGE="javascript"&gt;&nbsp; <br />
window.open 弹出新窗口的命令； <br />
page.html 弹出窗口的文件名； <br />
newwindow 弹出窗口的名字 非必须，可用空''代替； <br />
height=100 窗口高度； <br />
width=400 窗口宽度； <br />
top=0 窗口距离屏幕上方的象素值； <br />
left=0 窗口距离屏幕左侧的象素值； <br />
toolbar=no 是否显示工具栏，yes为显示； <br />
menubar，scrollbars 表示菜单栏和滚动栏。 <br />
resizable=no 是否允许改变窗口大小，yes为允许； <br />
location=no 是否显示地址栏，yes为允许； <br />
status=no 是否显示状态栏内的信息（通常是文件已经打开），yes为允许； <br />
&lt;/SCRIPT&gt; </p>
<img src ="http://www.blogjava.net/cyantide/aggbug/205164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cyantide/" target="_blank">cyantide</a> 2008-06-01 16:45 <a href="http://www.blogjava.net/cyantide/archive/2008/06/01/205164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>