Archive

Posts Tagged ‘technique’

与GUI设计师沟通的小技巧

August 16th, 2007

列出产品需要的所有视觉元素,包括图标,标志,窗口,按钮等等。
Make a list of all the graphic “things” needed for the product, including icons, widgets, marketing logos, buttons, controls, etc.

在一张纸上给这些视觉元素都草稿出小图案,让GUI设计师明白你想要的。
Take the list and make a crude thumbnail sketch of each item on a page so the visual designer can “see” what you want

创建层次框架图,如果层次不是特明确的,批注上什么是最重要的。
Create wireframes that show hierarchy and where hierarchy is not clear annotate the wireframes with callouts indicating what is most important Read more…

Docu~ , , ,

苹果电脑 Mac OS X 10.2 技巧集

July 21st, 2007

[quote]在 Mac OS X 的 Finder 中,您可以利用 Option 键来将所有的窗口最小化或关闭。比方说现在 Finder 开启了三个窗口,我们可以在其中一个窗口的黄色钮点一下,并且在点一下时同时压住 Option 键不放,即可将所有三个窗口同时最小化,此时您将看到三个窗口同时被收到 Dock 里,若您在点黄色钮之前除了压住 Option 键,还同时压住 Shift 键,则可以看到所有窗口皆以慢速度收到 Dock 里。 Read more…

Docu~ , ,

HP817加水

May 10th, 2007

彩色墨盒注墨方法:
1、把墨盒上部的卷标揭掉,看到卷标下面有五个小孔;
2、分辨颜色,有一个孔为红色,两个孔为蓝色,两个孔为黄色(可用牙签插入小孔分辩颜色);
3、喷头下面垫张好点的,不掉纸屑的面巾纸,这样是防止墨水从喷嘴串色;
如果是轻微串色,多打几个色块就可以解决(针对喷嘴部份串色可以按照此法)。
4、把针头扎入小孔进行注墨,注入适量墨水(一般每种颜色2ml即可,不宜过多)
5、把小孔周围擦干净,贴上标签。
黑色墨盒注墨方法与彩色墨盒相同,只是不用分辩颜色,5个孔选择任意一个即可

惠普墨盒(817.816)灌墨后计数器清零方法:
* HP惠普墨盒(817.816)灌墨后计数器清零方法
1、灌好墨后,用小块透明胶贴住左第二列的第一个点(触点面朝自己,最上为第一
点) 装入,自检完成后,可能会提示墨盒出错,再将其拿出.
2. 用另一透明胶贴住最右边的3个点装入,再自检, 提示墨盒出错,再将其拿出. (刷816时第二步屏蔽右边第二列第一个触点)
3. 将其拿出,撕掉两透明胶,装入.大功告成。。。。
小提示:需要注意的是,以下方式需要将墨水添加完成后进行,在清除粘贴过的胶带后必须处理好触点,将残留的胶带一定要清理干净后方可安装使用,此法不限制次数,计量芯片会恢复到初始状态,并且适用于大部分惠普墨盒(电子触点排列相同),大家可以放心使用。
注意事项:
817三种彩色墨盒中所包含的原色:青(天蓝),品(紫红),黄(明黄)。
墨盒注墨不应过多,注多了会使墨盒超重,造成打印机不认墨盒,无法打印。 彩色墨盒应严格控制注墨量,墨盒上标注的即为总墨水量。 如果注多会使墨水溢出,造成墨水从上部填充孔串色,那样就不是太好解决。
*不清零的确是可以用,但就是加几次墨以后墨盒就报错了,那时就只好换新墨盒了。如果在缺墨的状态下打印一定的量以后就往芯片中写入程序,让墨盒报错。所以还是清了的好,这样惠普总认为你用的是新墨盒。
喷头故障处理
第一步:用5ml注射器从注墨孔抽出全部残余墨水。
第二步:用5ml注射器向墨盒内注入清水,每个颜色注水2ml。
第三步:再用5ml注射器将清水抽出。
(第一次加注要重复1-3步若干次,以后注墨,只要没有喷头堵塞的情况,可以直接从第四步开始)
第四步:使用1ml注射器向墨盒内注墨,注意,针头要插的足够深,缓慢加注,基本上每注入0.2ml就停止1-2秒,让海绵有足够的时间将墨水吸收匀开。每个颜色注墨约2ml(根据官方资料,817墨盒的墨水容量是8ml,参照“不加满原则“,每个颜色2ml足够)。
第五步:使用墨盒清零方案清零。
第六步:将墨盒上打印机,使用HP打印机维护工具清洗喷头,依实际情况清洗1-3轮(每轮低中高各一次)。
第七步:完成,测试打印个什么玩意,最好是照片之类的耗墨图片。
特别情况说明
1、如果清洗喷头若干次后仍有缺痕现象(出墨,但出现横条缺墨),针对缺痕的颜色重复1-4步,
2、如果是彻底不出墨,根据我这两天得来的经验是两种情况造成的。
a、气泡,墨盒内仍有气泡,在喷头附近形成“墨水真空”,这种情况即
使再清洗喷头也没有用,这个“真空”不会消失,解决办法是,用第1步的方
法抽出那个颜色的全部墨水(可以注回墨桶),然后直接进入第四步,重复注墨动作。
b、注墨过量,如果加注墨水过多,打印时,会在喷头外形成“墨洪”(自己起的名字,洪水的含义),如果,你发现打印时某个颜色不出墨,但在喷头外却聚集了大量的这个颜色墨水,那么就有可能是这个原因了。解决办法:用5ml注射器从注孔插入,稍微回抽一下(0.5ml足以),然后重新上机尝试。
3、每次注墨后最好进行一下墨盒清零,然后在今后的打印中随时注意墨盒容量,一旦发现墨水容量将尽,或者打印机自己发出缺墨报警,立刻进行注墨,这样可以避免产生气泡。如果以后加注墨水2ml仍有溢出现象,那么为了防止产生“墨洪”,都要稍微回抽一下(0.5ml)。
4、每一次注墨或抽吸的动作完成后都要记着把注射器里里外外都清洗干净以后再进入下一个颜色。
5、每次注射器吸足墨以后,学学医生,针头向上轻弹针管,然后为为喷射一下,把针筒里的空气排除,否则,注墨时打进了空气,自然就有气泡了。

特殊情况处理
*红色不出不是芯片的问题,需要钻开被堵住的红色通气孔,位置在红色注墨孔旁边,有细小的通气线引出的起点位置,小心钻开就是了,以后也不用封住,贴封条不要盖住通气线的末段.
*打不出字是可能是因为喷嘴堵塞了, 如果是这样的话,把喷嘴部分放温水里约1分钟时间后,拿出来用力甩几下,看到有墨水渗出来后,就差不多了。
*别等到完全不出墨了才罐墨,最好是看到显示已经差不多用完了就加!或者每次用到大摡还剩三分之一的墨水时就罐墨,那么墨盒肯定能用很久,而不是只能罐两三次墨就报废, 如果等到完全不出墨了才罐墨,就算是新墨盒第一次罐墨也可能失败,特别是817墨盒的红色!

Docu~ ,

网页技巧集

April 18th, 2007

控制横向和纵向滚动条的显隐?

[code]
去掉x轴
去掉y轴
不显

[/code]

单元格鼠标指向变色

[code]
onmouseout=”this.style.backgroundColor=””
style=”CURSOR: hand”>[/code]

禁止复制,鼠标拖动选取

[code]
[/code]

普通iframe页面

[code]

[/code]

iframe自适应高度

[code]

[/code]

IE地址栏前换成自己的图标&可以在收藏夹中显示出你的图标

[code]

[/code]

字号缩放

[code]
越来越多的人长时间的泡网,眼镜的普及率也越来越高,让文字大点,让更多的用户看的更清楚。

需要指定大小的文字

[/code]

select挡住div的解决方法

[code]
在div里加入下面的代码,根据需要调整就可以了。

[/code]

iframe(嵌入式帧)自适应高度

[code]
填写的嵌入地址一定要和本页面在同一个站点上,否则会提示“拒绝访问!”。对跨域引用有权限问题,请查阅其他资料。

[/code]

跳转菜单弹新窗口

[code]

[/code]

flash透明选项

[code]

[/code]

添加到收藏夹和设为首页

[code]
添加到收藏夹:
添加到收藏夹
设为首页:
设为首页

[/code]

记录并显示网页的最后修改时间

[code]

[/code]

节日倒计时

[code]

[/code]

加在HEAD里禁止缓存

[code]


[/code]

让IFRAME框架内的文档的背景透明

[code]

[/code]

打开窗口即最大化

[code]

[/code]

防止点击空链接时,页面往往重置到页首端

[code]
代码“javascript:void(null)”代替原来的“#”标记

[/code]

文字或图片弹出指定大小的窗口

[code]
在body中加入

弹出代码
图片或文字

[/code]

flash按钮加链接

[code]
on (press) {
getURL(”http://www.makewing.com”,”_blank”);
}

[/code]

跳转页面代码

[code]

[/code]

细线分隔线

[code]


[/code]

网页中的自动换行

[code]

就搞定了。
完整的是
style=”table-layout: fixed;WORD-BREAK: break-all; WORD-WRAP: break-word”[/code]

消除ie6自动出现的图像工具栏,设置 GALLERYIMG属性为false或no

[code]

[/code]

禁止页面正文内容被选取

[code]
[/code]

不能点右键,不用CTRL+A,不能复制作用!

[code]

onkeypress=”window.event.returnValue=false”
onkeydown=”window.event.returnValue=false”
onkeyup=”window.event.returnValue=false”
ondragstart=”window.event.returnValue=false”
onselectstart=”event.returnValue=false”>
[/code]

IE浏览器支持一个 Body 属性 bgproperties,它可以让背景不滚动:

[code]
[/code]

随机变换背景图象(一个可以刷新心情的特效)

[code]

[/code]

flash载入影片

[code]
on (release)
{
loadMovie(”1-01.swf”, “_root.loaderclip”);
}

[/code]

图片表单按钮

[code]


[/code]

左右阴影背景的CSS定义方法

[code]
body {
text-align:center;
background-repeat: repeat-y;
background-position: center;
background-image: url(../images/bg.jpg);
} [/code]

Docu~ , ,

使用有趣的自定义标记来布局页面

April 18th, 2007

使用有趣的自定义标记来布局页面

今天我们来学习,如何使用有趣的自定义标记来布局页面。有的朋友可能有这样的疑问,自己随便定义的标记浏览器怎么能正确的认识呢?

这里我们就要用到文档的命名空间,那么命名空间又是指什么?

大家知道XML有一个很大的特点就是他的可扩展性。你可以创建你自己的标记或使用别人创建的标记,这里就存在了一个问题,即你所定义的标

记和别人定义的标识有可能相同,但他们各自所表示的意义却不同。

打一个形象的比喻,比如有两个人名字都叫蓝色,一个人在经典,一个人在天涯,如果你要找他们就可以这样说明,天涯:蓝色 、 经典:蓝色

,这样就不会混淆了。

命名空间的意义就是要告诉别人这个文档是属于谁的。xhtml是html向xml过渡的产物,这里他也提供给了我们一个命名空间。

看下面的例子,我们命名一个名称为blueidea的前缀,http://bbs.blueidea.com是用来说明命名空间的url。xmlns是指xhtml namespace

有意思的是我们甚至可以用中文来做标记(用中文可能会出现编码问题)。这样的文档看起来真的是一目了然。

下面我们定义一个标记叫做“新闻标题”格式因该是“blueidea:新闻标题”

最新更新

然后用CSS定义他 ,格式: blueidea\:新闻标题 {

}
需要注意的是我们自定义的标记默认属性,有点象a、span等内联元素。

下面是我写的一个基本布局,(兼容IE5、6、7 FF2 OP9)是不是很有意思,象XML,其实本来自定义标记就是用在xml上地。大家赶紧自己来试一下吧,因为很多东西都是自己从实践中摸索出来的。

[html]


蓝色理想


home
work
contact


最新更新

  • ·aaaaaaaaaaa
  • ·aaaaaaaaaaa
  • ·aaaaaaaaaaa
  • ·aaaaaaaaaaa
  • ·aaaaaaaaaaa
  • ·aaaaaaaaaaa
  • ssssss
    ssssss
    ssssss

    [/html]

    Docu~ , ,

    倾斜的鼠标翻转导航[转自蓝色理想]

    February 2nd, 2007

    注意倾斜角与垂直切线交叉处.
    话不多说,看效果吧,
    用到的图

    错误效果
    [html]






    [/html]错误效果

    正确效果
    [html]






    [/html]正确效果

    Docu~ , ,

    ASP技巧之定义数组方法

    December 11th, 2006

    数组是有序数据的集合。数组中的元素可以不属于同一个数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素,更改其中一个元素并不会影响其它元素。数组的下标是有界的,分为下界和上界。数组可以用Dim、Private、Public或Static来声明,它们的语法格式相同。下面只介绍用Dim声明数组的方法。

    1.数组的定义与声明
    数组的定义语法如下:

    Dim 数组名( [[下标下界 To ] 下标上界] ) [As 数据类型]

    例如(假设在当前模块中 数组的缺省下界为0)):

    ① Dim A(10) As Integer

    表示数组名为A,此数组下标下界为缺省值0,下标上界为10,有11个Integer类型的元素,从A(0)、A(1)到A(10)。

    ② Dim B(1 To 20) As Integer

    表示数组名为B,此数组下标下界为1,下标上界为20,有20个Integer类型的元素,从B(1)到B(20)。

    ③Dim DayArray(50)

    表示DayArray 是一个有 51 个索引(从 0 到 50)元素的 Variant 数组。

    ④Dim Matrix(3, 4) As Integer

    表示Matrix 是一个二维 Integer 数组。

    ⑤Dim MyMatrix(1 To 5, 4 To 9, 3 To 5) As Double

    表示MyMatrix 是一个显式指定了上下界的三维 double 数组。

    ⑥Dim BirthDay(1 To 10) As Date

    表示BirthDay 是一个索引从 1 到 10 的 Date型 数组。

    2.Option Base 语句
    Option Base 语句在模块级别中使用,用来声明数组下标的缺省下界。

    Option Base 语句的语法如下:

    Option Base {0 | 1}

    说明:缺省状态下数组下界为 0,此时无需使用 Option Base 语句。如果使用该语句规定数组下界1,则必须在模块的数组声明之前使用Option Base 语句。

    注意:

    (1)Dim、Private、Public、ReDim 以及 Static 语句中的 To 子句提供了一种更灵活的方式来控制数组的下标。不过,如果没有使用 To 子句显式地指定下界,则可以使用 Option Base 将缺省下界设为 1。使用 Array 函数创建的数组的下界也受 Option Base 语句指定的下界的决定, 除非 Array 是由类型库(例如 VBA.Array )名称限定,如果是由类型库名称限定,则 使用Array 函数创建的数组的下界不受 Option Base 的影响。

    (1) Option Base 语句只影响位于包含该语句的模块中的数组下界。

    关于数组声明的几点说明:

    ①数组名命名规则和变量名的相同。

    ②数组名后是用圆括弧括起来的,不能用方括弧,不同于C语言。

    ③下标的下界必须不能大于其上界。

    ④可以用变量名或常数名(以及实数)作下标的边界。当下标的边界是常数名时,数组的大小固定,当下标的边界是变量名时,数组的大小可作动态定义,即数组的大小取决于程序运行过程中变量的值。因此,VB 中数组又可以分为两种数组:静态数组、动态数组。

    3.静态数组
    静态数组是指数组元素的个数是固定不变的,即它们占用的内存空间大小是固定不变的。根据固定大小数组的维数不同,可以将它分为一维数组和多维数组。

    声明多维数组的语法格式为:

    Dim 数组名([下标边界列表]) [As 数据类型]

    下标边界的定义形式:[下标下界 To]下标上界

    下标边界列表指用逗号分开的数组各维的下标边界,即

    [下标下界 To]下标上界,[下标下界 To]下标上界,……,[下标下界 To]下标上界

    (第一维) (第二维) (第n维)

    当n=1时,数组称作一维数组;当n=2时,数组称作二维数组;依次类推,当n=m时,数组称作m维数组。

    下面举例介绍一维数组的使用。

    ’声明一个长度为51的字符串数组FriendsName

    Dim FriendsName(50) As String

    ’声明一个长度为11的全局整型数组Class

    Public Class(10) As Integer

    一维数组中的元素个数为(上界-下界+1)。

    为数组赋初值可以采用循环语句,如:

    Dim I As Integer

    For I = 0 To 11 ’循环语句的使用程序流程的控制

    C(I) = I

    Next I

    如果不显式指定下标下界,则数组的下标下界由 Option Base 语句控制。如果没有 Option Base 语句则下界为默认为 0。

    数组的维数并不限于2,在VB中,可以扩大至于60,在实际应用上对三维以上的数组的应用是不多的。定义一个多维数组时只需一条Dim语句指定数组的所有下标边界即可,使用多维数组的可以很方便的表示一些有意义的统计数据。例如:

    Dim Profit(16,10,12) As Currency

    这个Profit数组可用来表示以店名、部门及月份为参数的某百货公司的利润。如:Profit(2,8,11)代表了第二分店的第八部门在11月份的利润。

    4.动态数组
    有时在数组开始使用前,不能知道需要多大的数组才能满足实际需要。当然可以把数组的大小定义到足够大来满足任意的实际应用需要,这种方法效率很低(大量浪费内存空间)。如果使用动态数组,就可以在程序运行时根据实际需要,精确定义数组的大小。

    在声明数组时,不给出维数列表就是将数组声明为动态数组。例如:

    Dim MyArry() As Integer

    在使用动态数组前,必须使用ReDim语句把它重新定义。如前面声明的数组MyArry,可以用以下语句将它定义为一个动态二维数组。

    ReDim MyArry(10,10)

    还可以通过重复执行ReDim语句,多次定义动态数组。使用ReDim最多能定义数组的维数是60。ReDim语句可以改变数组每维的元素个数,但不能改变维数。下面是对ReDim语句的一个标准应用举例。

    Dim MyArry() As Single ‘声明动态数组

    ReDim MyArry(30,20,10) ‘重新定义数组

    ReDim MyArry(50,23,21) ‘再次重新定义数组

    ReDim的语法与Dim的相同,此外,它还有选择项Preserve关键词:

    ReDim Preserve 数组名 ([ [下标下界 To]下标上界]) [As 数据类型]

    例如:

    ReDim MyArry(50,23,21)

    ReDim Preserve MyArry(50,23,50)

    注意:使用ReDim 时,重新定义数组会使所有数组元素的值消失,而使用Preserve可以保留数据。但是用Preserve只能在改变数组的最后一维的大小时,保留数组的数据。对于一维数组来说,所有数据都会保留,而对于多维数组:只能改变最后一维的大小,才能保留全部数组数据,否则出错。

    5.LBound 函数和UBound 函数
    LBound 函数和Ubound函数都是返回一个 Long 型数据,前者得到的值为指定数组维可用的最小下标,而后者得到的是最大下标。它们的语法为:

    LBound(数组名[, 指定的维数])

    UBound(数组名[, 指定的维数])

    其中数组名是必选的。指定的维数是可选的,表明指定返回哪一维的下界。1 表示第一维,2 表示第二维,如此类推。如果省略指定的维数,就默认为是 1。

    关于如何使用LBound 函数与 UBound 函数可参见下例:

    Dim A(1 to 100,3,-3 to 4) As Integer ’定义一三维数组,假定没有使用Option Base 语

    ’句改变数组下界的默认值。

    对数组A使用Lbound 和Ubound函数,其返回值列表如下

    所有维的缺省下界取决于 Option Base 语句的设置。可以看出对一数组使用LBound 函数与 UBound 函数,可用于确定一个数组中元素的个数。

    对于那些在声明中用 To 子句来设定维数的数组而言,它们可以用任何整数作为下界而不受Option Base 语句的限制。

    6.数组的高级功能
    尽管数组最通常被用来存储成组的变量,但是在别的一些方面数组也是很有用的。可以将一个数组的内容赋值给另一个数组、创建返回数组的函数,还可以创建返回数组的属性。在许多情况下,这些技术能改进应用程序的性能。

    正如可以将一个变量的值赋给另一个变量,例如 StrA = StrB ,也可以将一个数组的内容赋给另一个数组。例如,要将一字节型数组从一个位置复制到另一个位置。可以通过每次复制一个字节来实现,程序如下:

    Sub ByteCopy(oldCopy() As Byte, newCopy() As Byte)

    ‘参数oldCopy()是源数组,newCopy()是目标数组

    Dim i As Integer

    ReDim newCopy (Lbound(oldCopy) To UBound(oldCopy)) ’重新定义动态数组

    For i = Lbound(oldCopy) To Ubound(oldCopy) ’循环赋值

    newCopy(i) = oldCopy(i)

    Next

    End Sub

    一个更有效的简单的方法就是直接将一个数组赋给另外一个数组:

    Sub ByteCopy(oldCopy() As Byte, newCopy() As Byte)

    ‘参数oldCopy()是源数组,newCopy()是目标数组

    newCopy = oldCopy ’利用数组直接进行赋值

    End Sub

    关于变量赋值有一些规则需要铭记。例如,虽然可以将一个声明为整型的变量赋给一个声明为长整型的变量而不会产生任何问题,但是将一个长整型变量赋给一个整型变量就很容易导致溢出错误。除了遵守有关数据类型变量之间赋值时的规则外,数组赋值还要遵从另外一些规则,包括数组维数,每一维的大小,以及数组是固定的还是动态的。

    ①维数、数据类型不同的数组赋值考虑的几个因素

    l 赋值符左边的数组类型:固定数组 (Dim x(1 to 10) As Integer) 或者动态数组 (Dim x() As Integer)。

    l 赋值符左边数组的维数是否和赋值符右边数组的维数匹配。

    l 赋值符两边数组的每一维的数组元素个数是否匹配。即使数组的声明不同,维数也可能匹配。比如一个数组的每一维元素从 0 开始编号而另一个则从 1 开始,维数也可能匹配。

    l 赋值符两边所有元素的数据类型必须是相容的。这些规则和变量赋值的规则是一致的。

    表3-6显示了这些因素的影响:

    数组赋值时的错误可能发生在编译时,也可能发生在运行时(例如,如果数据类型不能强制转换或赋值试图重新声明 (ReDim) 一个静态数组)。设计程序时要添加错误处理以确保数组在赋值之前是匹配的。

    ②编写返回数组的函数

    从一个函数返回一组值是可能实现的。例如,从一个函数返回一组字节而不必将其先转换为一个字符串然后再转换回来。

    下面是一个使用返回字节数组的函数的简单示例:

    Private Sub Form_Load()

    Dim b As Byte

    Dim i As Integer

    Dim ReturnArray() As Byte

    b = Cbyte(54)

    ReturnArray() = ArrayFunction(b) ’调用函数

    For i = Lbound(ReturnArray) To Ubound(ReturnArray)

    Msgbox ReturnArray(i)  ’通过弹出消息框循环显示数组值

    Next

    End Sub

    Public Function ArrayFunction(b As Byte) As Byte()

    Dim x(2) As Byte

    x(0) = b

    x(1) = b + CByte(200)

    x(2) = b + b

    ArrayFunction = x ’返回结果为数组x

    End Function

    在运行以上示例后, ReturnArray() 是一个三元素数组,其中包含了分配给 ArrayFunction 中数组的值。ArrayFunction 语句将一个数组作为参数传递;且数组的数据类型必须和函数的数据类型相同(在本例中是字节)。因为这是一个函数调用,传递数组时不必带括号。

    注意:

    1.尽管可以通过赋值给另一个数组(ArrayFunction = x())来返回一个数组,但出于性能方面的考虑,并不推荐使用这种方法。

    2.必须为返回数组的函数指定一个类型,这个类型可以是 Variant。这样一来,Function X() As Variant() 是有效的而 Function X() As () 将失败。

    3.当调用一个返回数组的函数时,用来保存返回值的变量也必须是一个数组,而且其数据类型必须和函数返回类型相同,否则将显示一个“类型不匹配”的错误。

    Docu~ , ,

    用在滚动表格中比较出彩。

    October 20th, 2006

    转自www.joy100.com
    [html]

    产品名称 规格 产地 价格 单位 企业名称 日期

    白银 1# # 3,465 元/公斤 长江现货 2006-8-25
    1# # 47,000 元/公斤 长江现货 2006-8-25
    电解锰 1# # 12,700 元/吨 长江现货 2006-8-25
    铜升水 1# # 600 元/吨 长江现货 2006-8-25
    铜升水 1# # 300 元/吨 长江现货 2006-8-25
    电解铜 1# # 68,490 元/吨 长江现货 2006-8-25
    电解铝 A00 # 19,540 元/吨 长江现货 2006-8-25
    电解铅 1# # 12,000 元/吨 长江现货 2006-8-25
    电解锌 0# # 29,650 元/吨 长江现货 2006-8-25
    电解锌 1# # 27,900 元/吨 长江现货 2006-8-25
    无氧铜丝 Φ3mm # 69,400 元/吨 长江现货 2006-8-25
    1# # 315,000 元/吨 长江现货 2006-8-25
    1# # 78,000 元/吨 长江现货 2006-8-25
    1# # 400,000 元/吨 长江现货 2006-8-25
    漆包线 0.1-2.5mm # 75,540 元/吨 长江现货 2006-8-25
    MB超细镍粉 150~1000 # 550 元/公斤 长江现货 2006-8-25
    砷铜合金   # 68,500 元/吨 长江现货 2006-8-25
    砷铜合金   # 68,500 元/吨 长江现货 2006-8-24
    名称1 名称2

    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890
    1234567890 1234567890

    /*
    简单要说明:
    
    A1,A2或B1,B2是滚动内容区域外的两个DIV的ID
    
    _W为滚动内容的宽度
    _H为滚动内容的高度,必须为单元格高度的整数倍,这里每个单元格是19px高
    _T为滚动后每次停留言时间
    Code by 51windows.net
    Email:51windows#gmail.com
    2006-8-25
    */

    [/html]

    Docu~ , , ,

    网页中一些比较隐蔽的用法

    October 17th, 2006

    事件源对象
    event.srcElement.tagName
    event.srcElement.type

    捕获释放
    event.srcElement.setCapture();
    event.srcElement.releaseCapture();

    事件按键
    event.keyCode
    event.shiftKey
    event.altKey
    event.ctrlKey

    事件返回值
    event.returnValue

    鼠标位置
    event.x
    event.y

    窗体活动元素
    document.activeElement

    绑定事件
    document.captureEvents(Event.KEYDOWN);

    访问窗体元素
    document.all(”txt”).focus();
    document.all(”txt”).select();

    窗体命令
    document.execCommand

    窗体COOKIE
    document.cookie

    菜单事件
    document.oncontextmenu

    创建元素
    document.createElement(”SPAN”);

    根据鼠标获得元素:
    document.elementFromPoint(event.x,event.y).tagName==”TD
    document.elementFromPoint(event.x,event.y).appendChild(ms)

    窗体图片
    document.images[索引]

    窗体事件绑定
    document.onmousedown=scrollwindow;

    元素
    document.窗体.elements[索引]

    对象绑定事件
    document.all.xxx.detachEvent(’onclick’,a);

    插件数目
    navigator.plugins

    取变量类型
    typeof($js_libpath) == “undefined”

    下拉框

    下拉框.options[索引]

    下拉框.options.length

    查找对象
    document.getElementsByName(”r1″);
    document.getElementById(id);

    定时
    timer=setInterval(’scrollwindow()’,delay);
    clearInterval(timer);

    UNCODE编码
    escape() ,unescape

    父对象
    obj.parentElement(dhtml)
    obj.parentNode(dom)

    交换表的行
    TableID.moveRow(2,1)

    替换CSS
    document.all.csss.href = “a.css”;

    并排显示
    display:inline

    隐藏焦点
    hidefocus=true

    根据宽度换行
    style=”word-break:break-all”

    自动刷新
    < meta HTTP-EQUIV="refresh" CONTENT="8;URL=http://c98.yeah.net">

    简单邮件
    < a href="mailto:aaa@bbb.com?subject=ccc&body=xxxyyy">

    快速转到位置
    obj.scrollIntoView(true)


    < a name="first">
    < a href="#first">anchors< /a>

    网页传递参数
    location.search();

    可编辑
    obj.contenteditable=true

    执行菜单命令
    obj.execCommand

    双字节字符
    /[^\x00-\xff]/

    汉字
    /[\u4e00-\u9fa5]/

    让英文字符串超出表格宽度自动换行
    word-wrap: break-word; word-break: break-all;

    透明背景
    < IFRAME src="1.htm" width=300 height=180 allowtransparency>< /iframe>

    获得style内容
    obj.style.cssText

    HTML标签
    document.documentElement.innerHTML

    第一个style标签
    document.styleSheets[0]

    style标签里的第一个样式
    document.styleSheets[0].rules[0]

    防止点击空链接时,页面往往重置到页首端。
    < a href="javascript:function()">word< /a>

    上一网页源
    asp:
    request.servervariables(”HTTP_REFERER”)
    javascript:
    document.referrer

    释放内存
    CollectGarbage();

    禁止右键
    document.oncontextmenu = function() { return false;}

    禁止保存
    < noscript>< iframe src="*.htm">< /iframe>< /noscript>

    禁止选取
    < body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false"onmouseup="document.selection.empty()>

    禁止粘贴
    < input type=text onpaste="return false">

    地址栏图标
    < link rel="Shortcut Icon" href="favicon.ico">
    favicon.ico 名字最好不变16*16的16色,放虚拟目录根目录下

    收藏栏图标
    < link rel="Bookmark" href="favicon.ico">

    查看源码
    < input type=button value=查看网页源代码 onclick="window.location = 'view-source:'+ 'http://www.csdn.net/'">

    关闭输入法
    < input style="ime-mode:Disabled">

    自动全选
    < input type=text name=text1 value="123" onfocus="this.select()">

    ENTER键可以让光标移到下一个输入框
    < input onkeydown="if(event.keyCode==13)event.keyCode=9">

    文本框的默认值
    < input type=text value="123" onfocus="alert(this.defaultValue)">

    title换行
    obj.title = “123 sdfs ”

    获得时间所代表的微秒
    var n1 = new Date(”2004-10-10″.replace(/-/g, “\/”)).getTime()

    窗口是否关闭
    win.closed

    checkbox扁平
    < input type=checkbox style="position: absolute; clip:rect(5px 15px 15px 5px)">< br>

    获取选中内容
    document.selection.createRange().duplicate().text

    自动完成功能
    < input type=text autocomplete=on>打开该功能
    < input type=text autocomplete=off>关闭该功能

    窗口最大化
    < body onload="window.resizeTo(window.screen.width - 4,window.screen.height-50);window.moveTo(-4,-4)">

    无关闭按钮IE
    window.open(”aa.htm”, “meizz”, “fullscreen=7″);

    统一编码/解码
    alert(decodeURIComponent(encodeURIComponent(”http://你好.com?as= hehe”)))
    encodeURIComponent对”:”、”/”、”;” 和 “?”也编码

    表格行指示
    < tr onmouseover="this.bgColor='#f0f0f0'" onmouseout="this.bgColor='#ffffff'">

    //各种尺寸

    s += “\r\n网页可见区域宽:”+ document.body.clientWidth;

    s += “\r\n网页可见区域高:”+ document.body.clientHeight;

    s += “\r\n网页可见区域高:”+ document.body.offsetWeight +” (包括边线的宽)”;

    s += “\r\n网页可见区域高:”+ document.body.offsetHeight +” (包括边线的宽)”;

    s += “\r\n网页正文全文宽:”+ document.body.scrollWidth;

    s += “\r\n网页正文全文高:”+ document.body.scrollHeight;

    s += “\r\n网页被卷去的高:”+ document.body.scrollTop;

    s += “\r\n网页被卷去的左:”+ document.body.scrollLeft;

    s += “\r\n网页正文部分上:”+ window.screenTop;

    s += “\r\n网页正文部分左:”+ window.screenLeft;

    s += “\r\n屏幕分辨率的高:”+ window.screen.height;

    s += “\r\n屏幕分辨率的宽:”+ window.screen.width;

    s += “\r\n屏幕可用工作区高度:”+ window.screen.availHeight;

    s += “\r\n屏幕可用工作区宽度:”+ window.screen.availWidth;

    //过滤数字

    < input type=text onkeypress="return event.keyCode>=48&&event.keyCode< =57||(this.value.indexOf('.')< 0?event.keyCode==46:false)" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false">

    //特殊用途

    < input type=button value=导入收藏夹 onclick="window.external.ImportExportFavorites(true,'http://localhost');">

    < input type=button value=导出收藏夹 onclick="window.external.ImportExportFavorites(false,'http://localhost');">

    < input type=button value=整理收藏夹 onclick="window.external.ShowBrowserUI('OrganizeFavorites', null)">

    < input type=button value=语言设置 onclick="window.external.ShowBrowserUI('LanguageDialog', null)">

    < input type=button value=加入收藏夹 onclick="window.external.AddFavorite('http://www.google.com/', 'google')">

    < input type=button value=加入到频道 onclick="window.external.addChannel('http://www.google.com/')">

    < input type=button value=加入到频道 onclick="window.external.showBrowserUI('PrivacySettings',null)">

    //不缓存

    < META HTTP-EQUIV="pragma" CONTENT="no-cache">

    < META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">

    < META HTTP-EQUIV="expires" CONTENT="0">

    //正则匹配

    匹配中文字符的正则表达式: [\u4e00-\u9fa5]

    匹配双字节字符(包括汉字在内):[^\x00-\xff]

    匹配空行的正则表达式:\n[\s| ]*\r

    匹配HTML标记的正则表达式:/< (.*)>.*< \/\1>|< (.*) \/>/

    匹配首尾空格的正则表达式:(^\s*)|(\s*$)(像vbscript那样的trim函数)

    匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

    匹配网址URL的正则表达式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

    以下是例子:

    利用正则表达式限制网页表单里的文本框输入内容:

    用正则表达式限制只能输入中文:onkeyup=”value=value.replace(/[^\u4E00-\u9FA5]/g,”)” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\u4E00-\u9FA5]/g,”))”

    1.用正则表达式限制只能输入全角字符: onkeyup=”value=value.replace(/[^\uFF00-\uFFFF]/g,”)” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\uFF00-\uFFFF]/g,”))”

    2.用正则表达式限制只能输入数字:onkeyup=”value=value.replace(/[^\d]/g,”) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,”))”

    3.用正则表达式限制只能输入数字和英文:onkeyup=”value=value.replace(/[\W]/g,”) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,”))”

    //消除图像工具栏

    < IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="false">

    or

    < head>

    < meta http-equiv="imagetoolbar" content="no">

    < /head>

    //无提示关闭

    function Close()

    {

    var ua=navigator.userAgent

    var ie=navigator.appName==”Microsoft Internet Explorer”?true:false

    if(ie)

    {

    var IEversion=parseFloat(ua.substring(ua.indexOf(”MSIE “)+5,ua.indexOf(”;”,ua.indexOf(”MSIE “))))

    if(IEversion< 5.5)

    {

    var str = '< object id=noTipClose classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">‘

    str += ‘< param name="Command" value="Close">< /object>‘;

    document.body.insertAdjacentHTML(”beforeEnd”, str);

    document.all.noTipClose.Click();

    }

    else

    {

    window.opener =null;

    window.close();

    }

    }

    else

    {

    window.close()

    }

    }

    //取得控件得绝对位置(1)

    < script language="javascript">

    function getoffset(e)

    {

    var t=e.offsetTop;

    var l=e.offsetLeft;

    while(e=e.offsetParent)

    {

    t+=e.offsetTop;

    l+=e.offsetLeft;

    }

    var rec = new Array(1);

    rec[0] = t;

    rec[1] = l;

    return rec

    }

    < /script>

    //获得控件的绝对位置(2)

    orect = obj.getBoundingClientRect();

    orect.left

    orect.

    //最小化,最大化,关闭

    < object id=min classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">

    < param name="Command" value="Minimize">< /object>

    < object id=max classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">

    < param name="Command" value="Maximize">< /object>

    < OBJECT id=close classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">

    < PARAM NAME="Command" value="Close">< /OBJECT>

    < input type=button value=最小化 onclick=min.Click()>

    < input type=button value=最大化 onclick=max.Click()>

    < input type=button value=关闭 onclick=close.Click()>

    //光标停在文字最后

    < script language="javascript">

    function cc()

    {

    var e = event.srcElement;

    var r =e.createTextRange();

    r.moveStart(’character’,e.value.length);

    r.collapse(true);

    r.select();

    }

    < /script>

    < input type=text name=text1 value="123" onfocus="cc()">

    //页面进入和退出的特效

    进入页面< meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">

    推出页面< meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)">

    这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使

    用哪种特效,取值为1-23:

      0 矩形缩小

      1 矩形扩大

      2 圆形缩小

      3 圆形扩大

      4 下到上刷新

      5 上到下刷新

      6 左到右刷新

      7 右到左刷新

      8 竖百叶窗

      9 横百叶窗

      10 错位横百叶窗

      11 错位竖百叶窗

      12 点扩散

      13 左右到中间刷新

      14 中间到左右刷新

      15 中间到上下

      16 上下到中间

      17 右下到左上

      18 右上到左下

      19 左上到右下

      20 左下到右上

      21 横条

      22 竖条

      23

    //网页是否被检索

    < meta name="ROBOTS" content="属性值">

      其中属性值有以下一些:

      属性值为”all”: 文件将被检索,且页上链接可被查询;

      属性值为”none”: 文件不被检索,而且不查询页上的链接;

      属性值为”index”: 文件将被检索;

      属性值为”follow”: 查询页上的链接;

      属性值为”noindex”: 文件不检索,但可被查询链接;

      属性值为”nofollow”:

    //打印分页

    < p style="page-break-after:always">page1< /p>

    < p style="page-break-after:always">page2< /p>

    //设置打印

    < object id="factory" style="display:none" viewastext

    classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"

    codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360"

    >< /object>

    < input type=button value=页面设置 onclick="factory.printing.PageSetup()">

    < input type=button value=打印预览 onclick="factory.printing.Preview()">

    < script language=javascript>

    function window.onload()

    {

    // — advanced features

    factory.printing.SetMarginMeasure(2) // measure margins in inches

    factory.printing.SetPageRange(false, 1, 3) // need pages from 1 to 3

    factory.printing.printer = “HP DeskJet 870C”

    factory.printing.copies = 2

    factory.printing.collate = true

    factory.printing.paperSize = “A4″

    factory.printing.paperSource = “Manual feed”

    // — basic features

    factory.printing.header = “居左显示&b居中显示&b居右显示页码,第&p页/共&P页”

    factory.printing.footer = “(自定义页脚)”

    factory.printing.portrait = false

    factory.printing.leftMargin = 0.75

    factory.printing.topMargin = 1.5

    factory.printing.rightMargin = 0.75

    factory.printing.bottomMargin = 1.5

    }

    function Print(frame) {

    factory.printing.Print(true, frame) // print with prompt

    }

    < /script>

    < input type=button value="打印本页" onclick="factory.printing.Print(false)">

    < input type=button value="页面设置" onclick="factory.printing.PageSetup()">

    < input type=button value="打印预览" onclick="factory.printing.Preview()">< br>

    < a href="http://www.meadroid.com/scriptx/docs/printdoc.htm?static" target=_blank>具体使用手册,更多信息,点这里< /a>

    //自带的打印预览

    WebBrowser.ExecWB(1,1) 打开

    Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口

    Web.ExecWB(4,1) 保存网页

    Web.ExecWB(6,1) 打印

    Web.ExecWB(7,1) 打印预览

    Web.ExecWB(8,1) 打印页面设置

    Web.ExecWB(10,1) 查看页面属性

    Web.ExecWB(15,1) 好像是撤销,有待确认

    Web.ExecWB(17,1) 全选

    Web.ExecWB(22,1) 刷新

    Web.ExecWB(45,1) 关闭窗体无提示

    < style media=print>

    .Noprint{display:none;}< !--用本样式在打印时隐藏非打印项目-->

    .PageNext{page-break-after: always;}< !--控制分页-->

    < /style>

    < object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">

    < /object>

    < center class="Noprint" >

    < input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)>

    < input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>

    < input type=button value=页面设置 onclick=document.all.WebBrowser.ExecWB(8,1)>

    < /p>

    < p> < input type=button value=打印预览 onclick=document.all.WebBrowser.ExecWB(7,1)>

    < /center>

    //去掉打印时的页眉页脚

    < script language="JavaScript">

    var HKEY_Root,HKEY_Path,HKEY_Key;

    HKEY_Root=”HKEY_CURRENT_USER”;

    HKEY_Path=”\\Software\\Microsoft\\Internet Explorer\\PageSetup\\”;

    //设置网页打印的页眉页脚为空

    function PageSetup_Null()

    {

    try

    {

    var Wsh=new ActiveXObject(”WScript.Shell”);

    HKEY_Key=”header”;

    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,”");

    HKEY_Key=”footer”;

    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,”");

    }

    catch(e){}

    }

    //设置网页打印的页眉页脚为默认值

    function PageSetup_Default()

    {

    try

    {

    var Wsh=new ActiveXObject(”WScript.Shell”);

    HKEY_Key=”header”;

    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,”&w&b页码,&p/&P”);

    HKEY_Key=”footer”;

    Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,”&u&b&d”);

    }

    catch(e){}

    }

    < /script>

    < input type="button" value="清空页码" onclick=PageSetup_Null()>

    < input type="button" value="恢复页码" onclick=PageSetup_Default()>

    //浏览器验证

    function checkBrowser()

    {

    this.ver=navigator.appVersion

    this.dom=document.getElementById?1:0

    this.ie6=(this.ver.indexOf(”MSIE 6″)>-1 && this.dom)?1:0;

    this.ie5=(this.ver.indexOf(”MSIE 5″)>-1 && this.dom)?1:0;

    this.ie4=(document.all && !this.dom)?1:0;

    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;

    this.ns4=(document.layers && !this.dom)?1:0;

    this.mac=(this.ver.indexOf(’Mac’) > -1) ?1:0;

    this.ope=(navigator.userAgent.indexOf(’Opera’)>-1);

    this.ie=(this.ie6 || this.ie5 || this.ie4)

    this.ns=(this.ns4 || this.ns5)

    this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope)

    this.nbw=(!this.bw)

    return this;

    }

    //计算内容宽和高

    < SCRIPT language="javascript">

    function test(obj)

    {

    var range = obj.createTextRange();

    alert(”内容区宽度: ” + range.boundingWidth

    + “px\r\n内容区高度: ” + range.boundingHeight + “px”);

    }

    < /SCRIPT>

    < BODY>

    < Textarea id="txt" height="150">sdf< /textarea>< INPUT type="button" value="计算内容宽度" onClick="test(txt)">

    < /BODY>

    //无模式的提示框

    function modelessAlert(Msg)

    {

    window.showModelessDialog(”javascript:alert(\”"+escape(Msg)+”\”);window.close();”,”",”status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;”);

    }

    //屏蔽按键

    < html>

    < head>

    < meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    < noscript>< meta http-equiv="refresh" content="0;url=about:noscript">< /noscript>

    < title>屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键< /title>

    < /head>

    < body>

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

    //屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键

    //Author: meizz(梅花雨) 2002-6-18

    function document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠标右键

    function window.onhelp(){return false} //屏蔽F1帮助

    function document.onkeydown()

    {

    if ((window.event.altKey)&&

    ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←

    (window.event.keyCode==39))) //屏蔽 Alt+ 方向键 →

    {

    alert("不准你使用ALT+方向键前进或后退网页!");

    event.returnValue=false;

    }

    /* 注:这还不是真正地屏蔽 Alt+ 方向键,

    因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放,

    用鼠标点掉警告框,这种屏蔽方法就失效了。以后若

    有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/

    if ((event.keyCode==8) || //屏蔽退格删除键

    (event.keyCode==116)|| //屏蔽 F5 刷新键

    (event.ctrlKey && event.keyCode==82)){ //Ctrl + R

    event.keyCode=0;

    event.returnValue=false;

    }

    if (event.keyCode==122){event.keyCode=0;event.returnValue=false;} //屏蔽F11

    if (event.ctrlKey && event.keyCode==78) event.returnValue=false; //屏蔽 Ctrl+n

    if (event.shiftKey && event.keyCode==121)event.returnValue=false; //屏蔽 shift+F10

    if (window.event.srcElement.tagName == "A" && window.event.shiftKey)

    window.event.returnValue = false; //屏蔽 shift 加鼠标左键新开一网页

    if ((window.event.altKey)&&(window.event.keyCode==115)) //屏蔽Alt+F4

    {

    window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");

    return false;

    }

    }

    < /script>

    屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键

    < /body>

    < /html>

    //屏蔽打印

    < style>

    @media print{

    * {display:none}

    }

    < /style>

    //移动的图层,拖动

    1.< span style='position:absolute;width:200;height:200;background:red' onmousedown=MouseDown(this) onmousemove=MouseMove() onmouseup=MouseUp()>meizz< /span>

    < script language=javascript>

    var Obj;

    function MouseDown(obj)

    {

    Obj=obj;

    Obj.setCapture();

    Obj.l=event.x-Obj.style.pixelLeft;

    Obj.t=event.y-Obj.style.pixelTop;

    }

    function MouseMove()

    {

    if(Obj!=null)

    {

    Obj.style.left = event.x-Obj.l;

    Obj.style.top = event.y-Obj.t;

    }

    }

    function MouseUp()

    {

    if(Obj!=null)

    {

    Obj.releaseCapture();

    Obj=null;

    }

    }

    < /script>

    2.

    < div id="myDiv" src="logo.gif" ondrag="doDrag();" onmouseover="this.style.cursor='hand'" style="position:absolute;left=100;top=100;" onmousedown="doMouseDown();">

    < a href="#" onclick="return false">< h1>wlecome< /h1>< /a>

    < /div>

    < script language="JavaScript" type="text/javascript">

    var orgMouseX;

    var orgMouseY;

    var orgObjX;

    var orgObjY;

    function doDrag()

    {

    var myObject=document.all.myDiv;

    var x=event.clientX;

    var y=event.clientY;

    myObject.style.left=x-(orgMouseX-orgObjX);

    myObject.style.top=y-(orgMouseY-orgObjY);

    }

    function doMouseDown()

    {

    orgMouseX=event.clientX;

    orgMouseY=event.clientY;

    orgObjX=parseInt(document.all.myDiv.style.left);

    orgObjY=parseInt(document.all.myDiv.style.top);

    }

    < /script>

    //文档状态改变

    < iframe src="a.html" id="f" name="f" scrolling="no" frameborder=0 marginwidth=0 marginheight=0>< /iframe>

    < script>

    var doc=window.frames["f"].document;

    function s(){

    if (doc.readyState==”complete”){

    document.all.f.style.height=doc.body.scrollHeight

    document.all.f.style.width=doc.body.scrollWidth

    }

    }

    doc.onreadystatechange=s

    < /script>

    Docu~ , , ,

    ASP实现分页的两种简单方法

    July 27th, 2006

    ASP实现分页的两种简单方法

    怎么用ASP实现分页(一)

    [code]<%@ Language=VBScript %>

    <%
    dim currentpage ‘定义当前页
    dim filename ‘文件名
    Const MaxPerPage=20 ‘每页显示的记录个数
    dim totalnumber ‘记录总数
    filename=”showpages.asp”
    totalnumber=200 ‘设置记录总数为200

    if not isempty(request(”page”)) then
    currentPage=cint(request(”page”))
    else
    currentPage=1
    end if
    showpages totalnumber,MaxPerPage,filename
    %>

    <%’定义分页的函数,以totalnumber,maxperpage,filename作为函数的入口。
    function showpages(totalnumber,maxperpage,filename)
    dim n
    if totalnumber mod maxperpage=0 then
    n= totalnumber \ maxperpage
    else
    n= totalnumber \ maxperpage+1
    end if
    response.write ”


    response.write ”

    记录分页 ”
    if CurrentPage<2 then
    response.write “首页 上一页
    else
    response.write “首页
    response.write “上一页
    end if
    if n-currentpage<1 then
    response.write “下一页 尾页
    else
    response.write “下一页 尾页
    end if
    response.write ” 页次:“&CurrentPage&”/”&n&”页 ”
    response.write ” 转到:

    value=”¤tpage&”>”
    response.write ”

    end function
    %> [/code]

    怎么用ASP实现分页(二)
    [code]

    <%@ Language=VBScript %>

    <%
    dim currentpage ‘定义当前页
    dim filename ‘文件名
    Const MaxPerPage=20 ‘每页显示的记录个数
    dim totalnumber ‘记录总数
    filename=”showpages.asp”
    totalnumber=200 ‘设置记录总数为200

    if not isempty(request(”page”)) then
    currentPage=cint(request(”page”))
    else
    currentPage=1
    end if
    showpages totalnumber,MaxPerPage,filename
    %>

    <%’定义分页的函数,以totalnumber,maxperpage,filename作为函数的入口。
    function showpages()
    dim n
    if (totalnumber mod MaxPerPage)=0 then
    n= totalPut \ MaxPerPage
    else
    n= totalPut \ MaxPerPage + 1
    end if
    if n=1 then
    exit sub
    end if
    dim k
    response.write ”

    >> 分页 ”
    for k=1 to n
    if k=currentPage then
    response.write “["+Cstr(k)+"] ”
    else
    response.write “["+""+Cstr(k)+"] ”
    end if
    next
    response.write ”


    end function
    %>
    [/code]

    Docu~ , ,