2008年5月8日 星期四

16进制颜色代码对照表

#FFFFFF
#FFFFCC
#FFFF99
#FFFF66
#FFFF33
#FFFF00
#FFCCFF
#FFCCCC
#FFCC99
#FFCC66
#FFCC33
#FFCC00
#FF99FF
#FF99CC
#FF9999
#FF9966
#FF9933
#FF9900
#FF66FF
#FF66CC
#FF6699
#FF6666
#FF6633
#FF6600
#FF33FF
#FF33CC
#FF3399
#FF3366
#FF3333
#FF3300
#FF00FF
#FF00CC
#FF0099
#FF0066
#FF0033
#FF0000
#66FFFF
#66FFCC
#66FF99
#66FF66
#66FF33
#66FF00
#66CCFF
#66CCCC
#66CC99
#66CC66
#66CC33
#66CC00
#6699FF
#6699CC
#669999
#669966
#669933
#669900
#6666FF
#6666CC
#666699
#666666
#666633
#666600
#6633FF
#6633CC
#663399
#663366
#663333
#663300
#6600FF
#6600CC
#660099
#660066
#660033
#660000
#CCFFFF
#CCFFCC
#CCFF99
#CCFF66
#CCFF33
#CCFF00
#CCCCFF
#CCCCCC
#CCCC99
#CCCC66
#CCCC33
#CCCC00
#CC99FF
#CC99CC
#CC9999
#CC9966
#CC9933
#CC9900
#CC66FF
#CC66CC
#CC6699
#CC6666
#CC6633
#CC6600
#CC33FF
#CC33CC
#CC3399
#CC3366
#CC3333
#CC3300
#CC00FF
#CC00CC
#CC0099
#CC0066
#CC0033
#CC0000
#33FFFF
#33FFCC
#33FF99
#33FF66
#33FF33
#33FF00
#33CCFF
#33CCCC
#33CC99
#33CC66
#33CC33
#33CC00
#3399FF
#3399CC
#339999
#339966
#339933
#339900
#3366FF
#3366CC
#336699
#336666
#336633
#336600
#3333FF
#3333CC
#333399
#333366
#333333
#333300
#3300FF
#3300CC
#330099
#330066
#330033
#330000
#99FFFF
#99FFCC
#99FF99
#99FF66
#99FF33
#99FF00
#99CCFF
#99CCCC
#99CC99
#99CC66
#99CC33
#99CC00
#9999FF
#9999CC
#999999
#999966
#999933
#999900
#9966FF
#9966CC
#996699
#996666
#996633
#996600
#9933FF
#9933CC
#993399
#993366
#993333
#993300
#9900FF
#9900CC
#990099
#990066
#990033
#990000
#00FFFF
#00FFCC
#00FF99
#00FF66
#00FF33
#00FF00
#00CCFF
#00CCCC
#00CC99
#00CC66
#00CC33
#00CC00
#0099FF
#0099CC
#009999
#009966
#009933
#009900
#0066FF
#0066CC
#006699
#006666
#006633
#006600
#0033FF
#0033CC
#003399
#003366
#003333
#003300
#0000FF
#0000CC
#000099
#000066
#000033
#000000

标签:

2008年3月3日 星期一

网站检查工具

- Dr. Watson's site validation check

Dr. Watson 是一个免费的网页分析服务,你只需提交你的URL ,Watson 就可以直接从WEB服务器提取到相关的检测报告。Watson 还能检查你网站的其它方面,包括链接的有效性,下载速度,搜索引擎兼容性,链接的友好性等。它将很多检验工具集合为一体,下面是简单列表:

页面加载时间检测
语法和风格分析
字数统计
拼写检查
链接检查
搜索引擎优化检测
引入链接检测
源代码检测

- W3C Markup validation Service

检测标记、源代码、HTML/XHTML等语法错误并提出修改建议。它来自于 W#C 集团,所以其检查比较严厉,文档检测标准独特,一些其他的相关检测网站均不具备,
   
- SEO Consultants Validator

这是一个HTML/XHTML/CSS有效性检测工具,当检查出错误时,提供更改的建议,包括语法风格检查和源代码检查。

- XML Validation checker

这个工具用来检测你的XML文件是否有效,检查范围包括空格和语法错误,当检查出错误时会用指出错误产生的行号,方便你的修正。

- Robots.txt checker

这个工具主要检查 Robots.txt 文件。当你拿不准你的 Robots.txt 是否有效或是否能被搜索引擎错误识别时,你最好先用它来检查一下,因为 Robots.txt 一旦出了问题对你的搜索收录存在很大的问题。

- Page load time checker

你想知道在世界各地打开你的网站的加载时间吗?这个工具就为你提供了可以世界各地打开你网页的时间同时给出处理的文档大小。

- All in One website validation check

XML/HTML 有效性、CSS、链接和结构合理性检测工具

- RSS Feed validator

检查你的RSS是否合乎标准,如果你的FEED需要修正,它会在相关错误处提示警告信息。

- General Conformance check

想知道你的站点是否还有可改善之处吗?可以用它来做一下所有的常规检测。

- Quality and Accessibility check

检测内容比较广泛,如易用性、页面内容、元数据、链接、浏览器兼容、搜索和导航、W3C网页内容指导等方面,它能够给你提供一个具体的错误细节报告和解决思路。

标签:

2008年2月25日 星期一

移动硬盘文件不能删除?

最近在移动硬盘上多了2个文件夹,名字很长(数字字母),怎么也删不掉
估计是借给别人时,在移动硬盘里直接运行安装程序造成的缓存文件
 
尝试了网上所有的办法,除了格式化
硬盘没那么大,都是重要的资料,其实放着也不唉事但就是看着不爽
 
根据提示看来是应为没有文件夹的宿主权限
然后我尝试了一下改变文件夹宿主的操作,结果问题得到了解决
具体操作如下
 
 
右键不能删除的文件夹,属性-》安全-》高级
 
选择  所有者 标签
 
选择当前用户
 
勾选复选框 替换子容器及对象的所有者
 
确定
 
 
然后就可以删除了~~
 
网上的各种做法是在是让我无言。。。。。

标签:

2008年1月9日 星期三

windows xp 删除服务


在"开始→运行"中键入"regedit.exe",打开"注册表编辑器",展开分支"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services",在右侧窗格中显示的就是本机安装的服务项。可以直接删
 

标签:

2007年11月28日 星期三

iframe 的宽高问题

今天在该一个弹出层对话框问题
用js控制弹出层的高度宽度想让嵌套在其中的iframe自适应宽高
开始的写法
<iframe width=100% height=100% ....>
结果死也没反应
后来改成
<iframe style="width:100%;height:100%;" ......>
问题就解决了

标签:

2007年11月26日 星期一

jpgraph在bsd中运行的小错误(字体问题)

今天在自己的bsd环境中跑jpgraph这个类包时发现提示字体不存在的情况
而且离奇的是提示的目录位置居然是X11下
网上找了会没有找到好的解决方法,抱着试一试的心态从windows/fonts下找了个与提示相同文件名的字体放到提示的目录中,居然顺利解决了。。。

标签:

2007年11月15日 星期四

14个css技巧

1、善用css缩写可以减少页面文件大小,提高下载速度,同时使代码简洁可读。

      如:

以下是引用片段:
div{
    border-top:1px solid #cccccc;
    border-left:1px solid #cccccc;
    border-right:1px soli #cccccc;
    border-bottom:1px solid #cccccc;
}

      可以写为:
p{border:1px solid #cccccc}

      再如:

以下是引用片段:
div{
    margin-top:10px;
    margin-right:20px;
    margin-bottom:30px;
    margin-left:40px;
}

      可以改写为:

以下是引用片段:
/*注意上、右、下、左的书写顺序*/
div{margin:10px 20px 30px 40px}
/*注意,数值与单位不能有空格,每个值之间用空格隔开*/

      2、可以同时为一个html元素的class属性设定多个规则(多重class定义)。

      通常我们写法为:<p class="a"></p>

      实际上我们可以为p元素指定多个规则,如:

以下是引用片段:
CSS:
.a{…}
.b{….}
HTML:
<p class="a b">该元素同时包括a和b中设定的样式</p>

      注意:多个规则之间用空格分开。

      3、明确定义单位,除非值为0

      忘记定义尺寸是css初学者新手普遍存在的问题。在html我们可以写width="100",但在css中应该给出一个准确的单位。如:width:100px;height:50px;font-size:9pt ,0值除外,因为不论对于任何单位。0值的大小都是相等的。

      注意:不要在数值和单位之间加空格。

      4、区分大小写

      在xhtml中,css定义的元素名称是区分大小写的,class和id的值在html和xhtml中也是区分大小写的,所以为了避免错误,推荐一律使用小写。如#aaa,与#AAA是不同的,在xhtml中,p和P也是不同的.他们之间不会覆盖。如果在css中定义了#aaa,在html元素中使用AAA来应用将不能得到#aaa中定义的样式。

      示例代码:

以下是引用片段:
CSS:
#aaa{border:1px solid #ccc}  
HTML:
<div id="AAA">显示不出来1个像素的边线</div>

      5、CSS的最近优先原则

      如果对一个元素定义了多次样式,则以最近的一级优先,最近一级的样式将覆盖其他的样式定义。

      如:

以下是引用片段:
CSS:
p{color:red}
.blue{color:blue}
.yellow{color:yellow}
HTML:
<p>此处显示为红色</p>
<p class="blue">此处显示为蓝色</p>
<p class="blue" style="color:green">此处显示为绿色</p>
<p class="blue yellow">此处显示为黄色</p>

      注意:

      (1)注意样式的几个优先顺序(优先级由上至下递减):

      --元素style设定 

      --head区<style></style>中的设定 

      --外部引用css文件

      (2)优先级不是按访问顺序来设定的,而是又css中的声明顺序来设定的。

      如上例中<p class="yellow blue">此处显示为黄色</p>也显示为黄色, 因为在css定义中.yellow在.blue的后面。

      6、使用子选择器减少id和class的定义

      例如:

以下是引用片段:
#contain{..}
#contain_ul{...}
.contail_li{...}
<div id="contain">
    <ul id="contain_ul">
        <li class="contain_li"></li>
        <li class="contain_li"></li>
    </ul>
</div>

      可以更改为:

以下是引用片段:
#contain{..}
#contain ul{...}
.contain ul li{...}
<div id="contain">
<ul>
    <li></li>
    <li></li>
</ul>
</div>

      7、不要给背景图片 路径加引号

      将background:url("xxx.gif")改为background:url(xxx.gif),因为对于部分浏览器加引号反而会引起错误。

      8、背景图片的路径是相对与当前css页面的路径。

      例如:

      有如下目录结构

      |--images
         |--xxx.gif
      |--css
         |--xx.css
      |--index.html

      代码内容

以下是引用片段:
index.html引用xx.css文件。<link rel="stylesheet" href="css/xx.css" />
xx.css要引用xxx.gif图片其写法为:background:url (../images/xxx.gif)

      9、使用组选择器为不同元素应用相同的样式

      如h1,h2,h3,div{font-size:16px;font-weight:bold}

      则h1,h2,h3,div元素的样式都为字体16像素,字体粗体

      10、书写正确的链接样式

      当用css定义链接的各种状态时,一定要注意其书写顺序,即::link :visited :hover :active。如果不按照该顺序书写可能无法达到自己希望的效果。为了记忆该顺序我们抽取每个单词的首字母:L V H A,你可以通过记忆LoVe,Hate,两个单词来记住其顺序。

      11、禁止内容换行与强制内容换行

      在表格或层中我们可能希望内容不换行或强制换行,我们可以通过一些css属性来达到这些要求。

      禁止换行:white-space:nowrap

      强制换行:word-wrap: break-word; word-break: normal;

      12、区别relative和absolute

      Absolute,CSS中的写法是:position:absolute; 他的意思是绝对定位,他是参照浏览器的左上角,配合TOP、RIGHT、BOTTOM、LEFT(下面简称TRBL)进行定位,在没有设定TRBL,默认依据父级的做标原始点为原始点。如果设定TRBL并且父级没有设定position属性,那么当前的absolute则以浏览器左上角为原始点进行定位,位置将由TRBL决定。

      Relative,CSS中的写法是:position:relative;  他的意思是绝对相对定位,他是参照父级的原始点为原始点,无父级则以BODY的原始点为原始点,配合TRBL进行定位,当父级内有padding等CSS属性时,当前级的原始点则参照父级内容区的原始点进行定位。

      13、区别div和span

      div是一个块级元素,可以包含段落,表格等内容,用于放置不同的内容。一般我们在网页通过div来布局定位网页中的每个区块。

      span是一个内联元素,没有实际意义,它的存在纯粹是为了应用样式,给一段内容加上<span></span>标记可以通过在span上定义样式来设定其内容的样式。

      14、区别display和visibility

      display:none和visibility:hidden都可以隐藏一个元素

      但visibility:hidden只是隐藏了元素的内容,但其使用的位置空间仍然被保留。而display:none则相当把元素从页面中去除,其占用位置也将被删除。


标签:

2007年11月1日 星期四

如何写游戏测评

如何全面评测一个游戏(一) 
 
如何评测一个游戏 本文所有内容都为作者自身观点。
 
评测前的准备:
 
1、忘记你最喜欢的游戏公司,忘记他们的作品
 
2、忘记你最讨厌的游戏公司,忘记他们的作品
 
3、拒绝一切该游戏的其他资料,从零开始
 
4、准备好你的耐心,准备好你的毅力
 
5、时刻提醒自己要细致地经过每一步
 
6、如果可能的话,请准备好纸张和水笔,首先记录下测评机器的详细配置信息,其次后面的空白留给任何给你留下较印象的东西。
 
然后,让我们开始吧。
 
 
 
入手
 
在测评的前期,你第一个接触游戏的部分应该是它的官方网站,而不是游戏。我个人认为,好的官方网站是一个游戏的接待台,它的友好程度和完善成都决定了玩家对整个游戏的第一印象,通常对你来说也是一样。这里评判一个官方网站,我总结和归纳了以下的一些评测标准:
 
1、游戏常规介绍、游戏新闻、公告
 
2、充值入口、商务入口
 
3、整体广告效应
 
4、下载通道、补丁通道、资源下载通道
 
5、玩家社区入口
 
6、帮助入口
 
虽然一般的网站都会具备以上的功能,但是一个网站是否更好的满足了访问者的需求就各有差异了。我们可以举个虚拟的例子来说明这个问题:大多数企划人员都认识到了玩家的一个习惯――先游戏再看帮助,这个习惯对于玩家来说非常普遍。新游戏接待玩家时,玩家会有很多问题,在他们互助行为无果后,他们会转向网站及社区寻求帮助。这个时候,网站的帮助入口就开始发挥它的作用。所以我们在评测的时候,首先需要对这个游戏的门户――网站有一个基础的了解,特别是这些基础的功能,是不是都照顾的很完善了呢?
 

如何全面评测一个游戏(二) 
准备期
 
游戏入手时的准备已经做完了,接下来,我们测评者应该已经具有了游戏的客户端,那么接下来,我们已经可以进行游戏的安装与更新了。在这个阶段需要注意的是如下的问题:
 
1、在安装时注意每一步操作,是否有你需求的功能没有添加或者是添加了你不需求的功能。
 
2、确保自己安装游戏是正确的步骤和方法。
 
3、安装过程中请注意是否有安装出错的情况。有则注意第四步,无则进入第五步。
 
4、出现错误,请注意弹出的提示。一个完善的游戏,会告诉你该错误的类型或者代码,你可以使用这个信息去官方查询,官方在FAQ或者人工服务时会帮助你处理该问题。但如果没有任何关于该错误的信息可供查阅,那么你可以执行如下两步:A,重新下载,重新安装,看是否会出现问题。有则执行B。B,收集自己的机器配置信息,越细致越好,然后收集尽可能全面的错误信息提交官方做地毯式查找。
 
5、顺利安装完成,开始更新游戏。关注自动更新与手动更新是否通畅,以及两者的效率对比。有条件的话,可以多次更新来得出准确一些的数据。
 
这个阶段,我觉得新人测评游戏或者对测评比较生疏的朋友可能会忽视。但实际上对于受众庞大的玩家来说,不是所有人都能够顺利安装并更新最后进入游戏的。粗略估计至少会有1%左右的玩家会是这种情况。
 
举例说明:在几年前,大家普遍使用windows95、windows98的时候,大家几乎都碰到过一个"非法操作"的问题。当"非法操作"发生后,大家可以大致了解"非法操作"的一些信息,但是这些信息是不能被用户主动发送给微软的。但是在今天大家普遍使用winxp甚至更高版本的时候就会发现,当年的"非法操作"如今已经可以由用户主动选择提交错误信息给微软研究部门。为什么会有这个举动很好理解:及时、准确地接到错误反馈对修正错误有很大的帮助。对比之下,游戏也是软件,软件就不免会出错、出BUG。所以近两年来,已经有很多游戏公司开始注重这个方面:当出现问题时,反馈客户同时请客户反馈公司,并提供便利、快捷的反馈通道――一个send按钮。《WOW》、《诛仙》等就是如此。
 
通过上述例子,我们可以知道在评测时需要注意哪些方面了,安装是否顺利、更新是否通畅、错误提示信息是否直观明确、反馈是否明显等都是我们的评测点之一,用心记下并划分好条目吧。
 
 
 
 
 
如何全面评测一个游戏(三)
 

开始
 
经过上面一系列准备工作,下面终于可以正式进入游戏体验一下了。来,泡杯茶慢慢享受吧。如果是一个严谨、完善的游戏,那么你的评测会轻松快乐许多;如果反之,那么你得准备大量的精力来对付一些不愉快的感受,甚至是游戏BUG。
 
因为这个阶段会接触到大量的游戏内容,所以我罗列的条目分成了两块,分前后期来进行。
 
首先是第一个阶段,我总结了一些需要评测的项目,其中有一些注明了是重点。
 
1、游戏基础配置在评测机上的运行效果,多台评测的话需要记录多台。――重点
 
这个阶段特别是针对了预备上市的游戏,对于一般的调研类评测报告则无关痛痒。在这个阶段你需要得出一些对于运营来说可能至关重要的数据:
 
画质、音效全开的帧数、CPU使用效率以及全关之后的效率
 
画质全开、全关之后的截图资料,细节对比说明
 
多单元画质评测(大量光效、人物、水及书等易占用资源单元)
 
零单元画质评测(与上相反)
 
评测建议画质、机器配置组合,最佳画质、机器配置组合
 
Loading时间长短
 
2、游戏美术印象评测。――重点
 
毋庸置疑,同样内涵的两款游戏,画面的好坏决定了它们被玩家接收速度的快慢,甚至决定了注册、在线、流失人数。所以对游戏美术的评测是相当重要的。
 
在这里我阐述一下我对游戏美术的一些观点,至少我认为如今看来它们仍然是成立的。美术是玩家在进入游戏后最先也是最可能发表评论的地方,其次才是程序,最后才是策划。对于玩家来说,他们关注的的美术会有一个辐射范围,这个范围由中心到四周的顺序是:自己人物及装备――其他人物及装备――场景总感觉――场景元素――界面――NPC及MOB,在这其中,任何环节中都可能会插入光效,如技能等。玩家会针对上述这些美术效果进行评价,并进行主观接收尝试。然后在后面的时间里,玩家会逐渐淡化对美术的考量,转向操作,内涵及乐趣等其他玩点的挖掘上。所以我认为,对于一个游戏来说,游戏美术工作的重点也应该按照这个层级进行;评测的时候,评测标准也应该按照这个层级由严格到宽松。
 
划分好评测重点顺序后,可以按照如下的标准来判别:
 
评测者对美术的第一印象评价
 
物件(包括了人物、物件)的外观形象、质感、效果,组合效果(包括物件装配人物,人物跑在场景)
 
物件运行效果,运行协调程度,比例和谐程度
 
光效类型划分与光效触发环境是否结合紧密
 
场景结构是否合理,场景效果
 
物件细节构成(质量)与实际使用效果对比(效果)
 
游戏运行整体程度,以及美术所有物件的被接受程度预估
 
场景眩晕、大地图眩晕、转向眩晕等问题总结
 
UI质感及UI操作美术暗示(如按钮明显与否,但是不考虑UI结构是否合理)
 
UI与游戏美术的结合程度
 
可能还有不全,各位读者可以留言补充或者提出,我会吸收补完。
 
以上所有的评测点,差不多已经囊括了所有需要评测的美术部分。针对以上的条目,我举个小小的流程例子给大家。
 
例子:一款新的3D MMORPG游戏,登录后开始创建人物。在这里可能会对人物的面部、体型等进行个性化操作。都试一试体会一下。然后在游戏中观察你的人物、身上的物品、可能触发的光效,然后观察其他玩家身上这些效果,最后请记录下来,最重要的是记录下来每次你操作有产生的效果,它们是否有明显的美术变化,这些变化对你来说是不是具有吸引力、诱惑力,以及很协调的外部表现。我们知道,玩家们喜欢看到自己身上的变化,特别是一种向上的变化。其次是其他玩家身上的变化,会刺激他们向上发展。评测人物、装备及相关光效等美术构成时,需要格外注意这些美术对你的吸引程度,它们共同运作时的协调程度,以及单独来看他们是不是显得太突兀。
 
以上结束后,接下来的评测重点为场景部分。场景的考察重点在于整体感觉,而非某个物件。很多游戏我们都发现单个场景的配件很粗糙,但是纵观整个场景实际上效果还是非常不错的。比如早期游戏场景中的树,实际就是两个片一交叉杵在哪里……这种"写意"场景的方式在《WOW》中也发挥的淋漓尽致,一个枝繁叶茂的树,实际就是若干个"片"拼合的。所以这个阶段的评测,需要我们在游戏中尽量从全面的角度去观察场景,观察时注意场景中是否有不协调的成分,及时记录和追踪。而且场景实际上也是一个氛围塑造的问题,越是玩家经常出入的地方、场景就越需要从远、近各个角度去考察。此外,有些游戏中场景也是一个增加卖点的噱头,比如一些实景的单机游戏把白宫、凯旋门等物件制作进去,这样便增加了玩家的喜爱程度。对这些可能成为卖点的重点场景,也需要对他们的特点、体验感受进行全面的观察和记录。
 
除此之外,场景承载了所有的玩家,所有的玩家必然都会经过在场景中完成游戏体验。而很多游戏都碰见过玩家对地图眩晕的问题,而且3D游戏多于2D游戏。这个实际上和很多因素有所关联,类似的探讨也很多,所以在这里我们只考虑评测时如何注意这些问题,并且从美术上如何去发现并预防。
 
以最为常见的情况来说,3D眩晕一般容易在下列情况下出现:
 
场景狭小,帧数偏低
 
场景物件形成的压迫感太强
 
镜头晃动过于激烈
 
贴图过于"网格"化(太过规律排列、太花)
 
镜头晃动贴近真实
 
而2D游戏中眩晕的情况相对少见的多,但是也不是没有。2D游戏眩晕通常只会是对场景移动时的眩晕。这表现在玩家在操作角色移动时,镜头跟随角色而场景会更换。在这个更换的过程中,空旷、帧数过低、网格效果都可能会导致对该场景眩晕。
 
总结关于场景部分,最重要的是大环境。场景不需要细到每个石头都刻画仔细,但是它的意境、玩家对它的感觉以及角色是否能融入才是关键的。在这个基础上,再去探讨它有哪些出彩的地方。
 
然后,我们来说一下关于光效的问题。光效可能会在许多时候、许多地方出现,对于它们来说,最主要的就是细节刻画是否到位,而不是看它们华丽到什么程度。虽然说华丽是一个特点,但是有时候为了追求效果的华丽,我们会失去很多东西。总之,光效追求的就是入细、得体、恰如其分。那么,什么叫做恰如其分,用个最简单的解释说就是:该出现的时候出现,出现的时候要出现的合适。比如说,我们有个写实的MMORPG游戏,有一个砍杀怪物的动作。这个时候往往会有一个攻击效果出现。这个效果不出现,你会看到一次很没有感觉的攻击;出现的太巨大,你后面更强烈的攻击就会被简介削弱气氛。最合适的效果应该是什么,就需要评测的经验和对整体大局的判断了。
 
最后,是关于UI的问题。关于UI,它的美术我一直保持一种观点就是:简单、协调。UI是一种交互工具,不是用来增加你游戏美观的砝码,但是如果你忽视,那也会使游戏画面看起来很怪异。美术出色的UI,应该是看起来能和游戏整体色调保持一致、但又不缺乏质感叫你无法和游戏内容区分;具有一定游戏经验的人立刻能够分辨UI的基本功能和含义,辨识各按钮及信息栏;图标图简意赅,文字图片搭配和谐匀称,色彩协调。在这里,我们暂时不讨论UI的操作性,留在后面说。
 
以上,是对美术的全面评测。

标签:

2007年9月29日 星期六

一个强大的图表类-jpgraph

网址:http://www.aditus.nu/jpgraph/

可以很方便的绘制各种图表
柱状图,饼图,曲线图,圈图,甘特图 等等
只要整理好数据抛给接口就可以用了

标签:

2007年9月12日 星期三

自创checkbox全选和全撤销

<form id="fileF" action="">
<INPUT type=checkbox value="" name=dl[]>
<INPUT type=checkbox value="" name=dl[]>
<INPUT type=checkbox value="" name=dl[]>
<INPUT type=checkbox value="" name=dl[]>
<INPUT type=checkbox value="" name=dl[]>
<INPUT type=checkbox value="" name=dl[]>
 
<input type="checkbox" onclick='chkall("fileF",this)' name=chk>全选
</form>
<script>
function chkall(item1,item2){
var objForm = document.forms[item1];
var objLen = objForm.length;
 for (var i = 0;i<objLen;i++){
   if (objForm.elements[i].type == "checkbox")
    {
     objForm.elements[i].checked = item2.checked;
    }
 }
}
</script>
 
 
此写发中
<INPUT type=checkbox value="" name=dl[]>
里的name在循环中没有作用,只是传递数据时会成为数组
原理是循环form中的所有表单元素找出 checkbox类型并使其和全选控制checkbox的checked属性保持一致
--
MSN    >>   humen1@gmail.com

标签:

2007年9月11日 星期二

js的一些常用验证


js验证表单大全
1. 长度限制
<script>
function test() 
{
if(document.a.b.value.length>50)
{
alert("不能超过50个字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form> 

2. 只能是汉字 
<input onkeyup="value="/oblog/value.replace(/[^\u4E00-\u9FA5]/g,'')">

3." 只能是英文
<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
event.returnvalue=false;
}
</script>

<input onkeydown="onlyEng();">

4. 只能是数字
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//考虑小键盘上的数字键
event.returnvalue=false;
}
</script>

<input onkeydown="onlyNum();">

5. 只能是英文字符和数字
<input onkeyup="value="/oblog/value.replace(/[\W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData ('text').replace(/[^\d]/g,''))">

6. 验证油箱格式
<SCRIPT LANGUAGE=javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>

7. 屏蔽关键字(这里屏蔽***和****)
<script language="javascript1.2">
function test() {
if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
alert(":)");
a.b.focus();
return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>

8. 两次输入密码是否相同
<FORM METHOD=POST ACTION="">
<input type="password" id="input1">
<input type="password" id="input2">
<input type="button" value="test" onclick="check()">
</FORM>
<script>
function check()

with(document.all){
if(input1.value!=input2.value)
{
alert("false")
input1.value = "";
input2.value = "";
}
else document.forms[0].submit();
}
}
</script>
够了吧 :)
屏蔽右键 很酷 
oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
加在body中




2.1  表单项不能为空

<script  language="javascript">
<!--
function  CheckForm()
{  
if  (document.form.name.value.length  ==  0)  {  
alert("请输入您姓名!");
document.form.name.focus();
return  false;
}
return  true;
}
-->
</script>

2.2  比较两个表单项的值是否相同

<script  language="javascript">
<!--
function  CheckForm()
if  (document.form.PWD.value  !=  document.form.PWD_Again.value)  {  
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return  false;
}
return  true;
}
-->
</script>

2.3  表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等

<script  language="javascript">
<!--
function  isNumber(String)
{  
var  Letters  =  "1234567890-";  //可以自己增加可输入值
var  i;
var  c;
if(String.charAt(  0  )=='-')
return  false;
if(  String.charAt(  String.length   -  1  )  ==  '-'  )
return  false;
for(  i  =  0;  i  <  String.length;  i  ++  )
{  
c  =  String.charAt(  i  );
if  (Letters.indexOf(  c  )  <  0)
return  false;
}
return  true;
}
function  CheckForm()
{  
if(!  isNumber(document.form.TEL.value))  {  
alert("您的电话号码不合法!");
document.form.TEL.focus();
return  false;
}
return  true;
}
-->
</script>


2.4  表单项输入数值/长度限定

<script  language="javascript">
<!--
function  CheckForm()  
{  
if  (document.form.count.value  >  100  ||  document.form.count.value  <  1)
{  
alert("输入数值不能小于零大于100!");
document.form.count.focus();
return  false;
}
if  (document.form.MESSAGE.value.length<10)
{  
alert("输入文字小于10!");
document.form.MESSAGE.focus();
return  false;
}
return  true;
}
//-->
</script>

2.5  中文/英文/数字/邮件地址合法性判断

<SCRIPT  LANGUAGE="javascript">
<!--

function  isEnglish(name)  //英文值检测
{  
if(name.length   ==  0)
return  false;
for(i  =  0;  i  <  name.length;  i++)  {  
if(name.charCodeAt(i)  >  128)
return  false;
}
return  true;
}

function  isChinese(name)  //中文值检测
{  
if(name.length   ==  0)
return  false;
for(i  =  0;  i  <  name.length;  i++)  {  
if(name.charCodeAt(i)  >  128)
return  true;
}
return  false;
}

function  isMail(name)  //  E-mail值检测
{  
if(!  isEnglish(name))
return  false;
i  =  name.indexOf("  at  ");
j  =  name  dot  lastIndexOf("  at  ");
if(i  ==  -1)
return  false;
if(i  !=  j)
return  false;
if(i  ==  name  dot  length)
return  false;
return  true;
}

function  isNumber(name)  //数值检测
{  
if(name.length  ==  0)
return  false;
for(i  =  0;  i  <  name.length;  i++)  {  
if(name.charAt(i)  <  "0"  ||  name.charAt (i)  >  "9")
return  false;
}
return  true;
}

function  CheckForm()
{  
if(!  isMail(form.Email.value))  {  
alert("您的电子邮件不合法!");
form.Email.focus();
return  false;
}
if(!  isEnglish(form.name.value))  {  
alert("英文名不合法!");
form.name.focus();
return  false;
}
if(!  isChinese(form.cnname.value))  {  
alert("中文名不合法!");
form.cnname.focus();
return  false;
}
if(!  isNumber(form.PublicZipCode.value))  {  
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return  false;
}
return  true;
}
//-->
</SCRIPT>

2.6   限定表单项不能输入的字符

<script  language="javascript">
<!--

function  contain(str,charset)//  字符串包含测试函数
{  
var  i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return  true;
return  false;
}

function  CheckForm()
{  
if  ((contain(document.form.NAME.value,  "%\(\)><"))  ||  (contain(document.form.MESSAGE.value,  "%\(\)><")))
{  
alert("输入了非法字符");
document.form.NAME.focus();
return  false;
}
return  true;
}
//-->
</script>  

1. 检查一段字符串是否全由数字组成       
---------------------------------------       
<script language="Javascript"><!--           
function checkNum(str){return str.match(/\D/)==null}           
alert(checkNum("1232142141"))           
alert(checkNum("123214214a1"))           
// --></script>         
      
2. 怎么判断是否是字符         
---------------------------------------       
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");          
else alert("全是字符");      
           
3. 怎么判断是否含有汉字        
---------------------------------------        
if (escape(str).indexOf("%u")!=-1) alert("含有汉字");         
else alert("全是字符");           
    
4. 邮箱格式验证    
---------------------------------------      
//函数名:chkemail     
//功能介绍:检查是否为Email Address     
//参数说明:要检查的字符串     
//返回值:0:不是 1:是     
function chkemail(a)     
{ var i=a.length ;     
var temp = a.indexOf('@');     
var tempd = a.indexOf('.');     
if (temp > 1) {     
if ((i-temp) > 3){     
if ((i-tempd)>0){     
return 1;     
}     
    
}     
}     
return 0;     
}     
    
5. 数字格式验证    
---------------------------------------      
//函数名:fucCheckNUM     
//功能介绍:检查是否为数字     
//参数说明:要检查的数字     
//返回值:1为是数字,0为不是数字     
function fucCheckNUM(NUM)     
{     
var i,j,strTemp;     
strTemp="0123456789";     
if ( NUM.length== 0)     
return 0     
for (i=0;i<NUM.length;i++)     
{     
j=strTemp.indexOf(NUM.charAt(i));     
if (j==-1)     
{     
//说明有字符不是数字     
return 0;     
}     
}     
//说明是数字     
return 1;     
}     
    
6. 电话号码格式验证    
---------------------------------------      
//函数名:fucCheckTEL     
//功能介绍:检查是否为电话号码     
//参数说明:要检查的字符串     
//返回值:1为是合法,0为不合法     
function fucCheckTEL(TEL)     
{     
var i,j,strTemp;     
strTemp="0123456789-()# ";     
for (i=0;i<TEL.length;i++)     
{     
j=strTemp.indexOf (TEL.charAt(i));     
if (j==-1)     
{     
//说明有字符不合法     
return 0;     
}     
}     
//说明合法     
return 1;     
}    
   
7. 判断输入是否为中文的函数   
---------------------------------------      
function ischinese(s){   
var ret=true;   
for(var i=0;i<s.length;i++)   
ret=ret && (s.charCodeAt(i)>=10000);   
return ret;   
}    
   
8. 综合的判断用户输入的合法性的函数  
---------------------------------------      
<script language="javascript">  
//限制输入字符的位数开始  
//m是用户输入,n是要限制的位数  
function issmall(m,n)  
{  
if ((m<n) && (m>0))  
  {  
  return(false);  
  }  
else  
{return(true);}  
}  
  
9. 判断密码是否输入一致  
---------------------------------------      
function issame(str1,str2)  
{  
if (str1==str2)  
{return(true);}  
else  
{return(false);}  
}  
  
10. 判断用户名是否为数字字母下滑线 
---------------------------------------      
function notchinese(str){ 
var reg=/[^A-Za-z0-9_]/g 
    if (reg.test(str)){ 
    return (false); 
    }else{ 
return(true);    } 


11. form文本域的通用校验函数
---------------------------------------      
作用:检测所有必须非空的input文本,比如姓名,账号,邮件地址等等。
该校验现在只针对文本域,如果要针对form里面的其他域对象,可以改变判断条件。

使用方法:在要检测的文本域中加入title文字。文字是在提示信息,你要提示给用户的该字段的中文名。比如要检测用户名
html如下<input name="txt_1" title="姓名">,当然,最好用可视化工具比如dreamweaver什么的来编辑域。
如果要检测数字类型数据的话,再把域的id统一为sz.
javascript判断日期类型比较麻烦,所以就没有做日期类型校验的程序了.高手可以补充。

程序比较草,只是提供一个思路。抛砖引玉! :)
哦,对了,函数调用方法:< form  onsubmit="return dovalidate()">

function dovalidate()
{
fm=document.forms[0] //只检测一个form,如果是多个可以改变判断条件
    for(i=0;i<fm.length;i++)
    {  
    //检测判断条件,根据类型不同可以修改
    if(fm[i].tagName.toUpperCase()=="INPUT" &&fm[i].type.toUpperCase()=="TEXT" && (fm[i].title!=""))
    
         if(fm[i].value="/blog/="")//
         {
         str_warn1=fm[i].title+"不能为空!";
         alert(str_warn1);
        fm[i].focus();
         return false;         
         }
         if(fm[i].id.toUpperCase()=="SZ")//数字校验
         {
                 if(isNaN(fm[i].value))
                { str_warn2=fm[i].title+"格式不对";
                alert(str_warn2);
                fm[i].focus();
                 return false;
                 }
        }
    }
    return true;
}


2 >表单提交验证类 


2.1 表单项不能为空

<script language="javascript">
<!--
function CheckForm()

if (document.form.name.value.length == 0) { 
alert("请输入您姓名!");
document.form.name.focus();
return false;
}
return true;
}
-->
</script>

2.2 比较两个表单项的值是否相同

<script language="javascript">
<!--
function CheckForm()
if (document.form.PWD.value != document.form.PWD_Again.value) { 
alert("您两次输入的密码不一样!请重新输入.");
document.ADDUser.PWD.focus();
return false;
}
return true;
}
-->
</script>

2.3 表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等

<script language="javascript">
<!--
function isNumber(String)

var Letters = "1234567890-"; //可以自己增加可输入值
var i;
var c;
if(String.charAt( 0 )=='-')
return false;
if( String.charAt( String.length - 1 ) == '-' )
return false;
for( i = 0; i < String.length; i ++ )

c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}
function CheckForm()

if(! isNumber( document.form.TEL.value)) { 
alert("您的电话号码不合法!");
document.form.TEL.focus();
return false;
}
return true;
}
-->
</script>


2.4 表单项输入数值/长度限定

<script language="javascript">
<!--
function CheckForm() 

if (document.form.count.value > 100 || document.form.count.value < 1)

alert("输入数值不能小于零大于100!");
document.form.count.focus();
return false;
}
if (document.form.MESSAGE.value.length<10)

alert("输入文字小于10!");
document.form.MESSAGE.focus();
return false;
}
return true;
}
//-->
</script>

2.5 中文/英文/数字/邮件地址合法性判断

<SCRIPT LANGUAGE="javascript">
<!--

function isEnglish(name) //英文值检测

if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) { 
if(name.charCodeAt(i) > 128)
return false;
}
return true;
}

function isChinese(name) //中文值检测

if(name.length == 0)
return false;
for(i = 0; i < name.length; i++) { 
if(name.charCodeAt(i) > 128)
return true;
}
return false;
}

function isMail(name) // E-mail值检测

if(! isEnglish(name))
return false;
i = name.indexOf(" at ");
j = name dot lastIndexOf(" at ");
if(i == -1)
return false;
if(i != j)
return false;
if(i == name dot length)
return false;
return true;
}

function isNumber(name) //数值检测

if(name.length == 0)
return false;
for(i = 0; i < name.length ; i++) { 
if(name.charAt(i) < "0" || name.charAt(i) > "9")
return false;
}
return true;
}

function CheckForm()

if(! isMail(form.Email.value)) { 
alert("您的电子邮件不合法!");
form.Email.focus();
return false;
}
if(! isEnglish(form.name.value)) { 
alert("英文名不合法!");
form.name.focus();
return false;
}
if(! isChinese(form.cnname.value)) { 
alert("中文名不合法!");
form.cnname.focus();
return false;
}
if(! isNumber(form.PublicZipCode.value)) { 
alert("邮政编码不合法!");
form.PublicZipCode.focus();
return false;
}
return true;
}
//-->
</SCRIPT>

2.6 限定表单项不能输入的字符

<script language="javascript">
<!--

function contain(str,charset)// 字符串包含测试函数

var i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt (i))>=0)
return true;
return false;
}

function CheckForm()

if ((contain(document.form.NAME.value, "%\(\)><")) || (contain(document.form.MESSAGE.value, "%\(\)><")))

alert("输入了非法字符");
document.form.NAME.focus();
return false;
}
return true;
}
//-->
</script>

标签:

2007年9月7日 星期五

"无法打开 站点 ,已终止操作" 的解决方法

打开网页时,提示“internet explore 无法打开internet站点...,已终止操作”,是js引发的错误。
加上一个载入判断就可以了。if (document.readyState!="complete") return ;
“internet explore 无法打开internet站点...,已终止操作”,从此消失

标签: ,

2007年9月3日 星期一

ime-mode

ime-mode : auto active inactive disabled

参数:
auto : 不影响IME的状态。与不指定ime-mode属性时相同
active : 指定所有使用IME输入的字符。即激活本地语言输入法。用户仍可以撤销激活IME inactive : 指定所有不使用IME输入的字符。即激活非本地语言。用户仍可以撤销激活IME disabled : 完全禁用IME。对于有焦点的控件(如输入框),用户不可以激活IME

标签:

2007年8月31日 星期五

Access2MySQL Pro

Access2MySQL Pro is a reliable bi-directional database migration tool which allows you to convert from:

MS Access to MySQL
MS Access to MySQL Dump
MS Access to PHP Script
MS Access to MS Access
MySQL to MS Access
MySQL to MySQL.
MySQL to MySQL Dump
MySQL to PHP Script
Convert databases from MS Access to MySQL or from MySQL to MS Access rapidly and reliably! Operate with a whole database or select only needed tables, fields, indexes and foreign keys to proceed! Reach the desired result by simply configuring of several options through Wizard interface or in command line mode! Access2MySQL Pro is also applicable for MySQL database migration to another MySQL database or to MySQL server. Moreover, Access2MySQL is quite well for copying MS Access database to another MS Access database.

Name: Jan Ladendorf
Company:
E-Mail: peter666@kfz.zeichen.ws
A52GFRQB>AXMGGC7617RUB1AO47Z61B0XPYK214T8LIM

标签:

2007年8月6日 星期一

一款很好的压缩office三部众的压缩软件

 
可以压缩Word、Excel、PowerPoint


--
MSN    >>   humen1@gmail.com

标签:

2007年8月3日 星期五

给html里的flash加上链接


今天又发现一招
 
用<button></button>标签把<object>控件包起来。在<button>中加如链接的js
 
例:
 
 
<button style="width:450;height:100;border:none;background:transparent" onclick="Glogin();" hidefocus>
 
<OBJECT>
...
<param name="wmode" value="Opaque"><!--这个不可却-->
</OBJECT>
 
</button>

标签:

不同世界的css

今天发现scrollbar的各项属性不被ie5.5以下,以及netscape6.0 and 7.0 支持
微软创造了不同世界许多不同标准,css也是!

 

标签: