2009年4月15日星期三

回应上帝的呼唤

“人若自洁,脱离卑贱的事,就必作贵重的器皿,成为圣洁,合乎主用,预备行各样的善事。”[提后2:21]

  
    感谢主,对于每位弟兄姊妹来说,上帝在我们的生命中都对我们有一个呼唤, 圣经中记载,上帝呼唤摩西的时候这样写到:

   神说,不要近前来。当把你脚上的鞋脱下来,因为你所站之地是圣地。[出3:5]

   我们看见神呼唤人就近他的时候,他何等在乎人要“圣洁”,圣经中告诉我们:

  “人若自洁,脱离卑贱的事,就必作贵重的器皿,成为圣洁,合乎主用,预备行各样的善事。”[提后2:21]

   感谢主,我就籍着神要我们“成为圣洁”这个主题来思考一下作为主的儿女,我们怎样来回应神对我们的爱。
  
    一  要保守你心

    在圣经中有一个人物,在他得罪神后他是这么向神祈求的,他说:“神啊,求你为我造清洁的心,使我里面重新有正直的灵”。这个人物是谁呢?那就是圣经中的“大卫”。

    我们通过“大卫”祈求的话语我们发现,他心里面是那么不安,他感到痛苦,他感到烦躁,他失去了在神面前的喜乐。为什么会这样呢?

    大卫祈求上帝说:“求你为我造清洁的心”——我们来思考下,与清洁相对的是什么?与清洁相对的是“不清洁”!也就是大卫感受到自己的心里是“不清洁”的——他里面有肮脏,有污秽,有不洁的东西缠累着他。圣经中说:

    你要保守你心,胜过保守一切。因为一生的果效,是由心发出。[箴4:23]

    大卫曾在情欲的面前他没有保守住自己的心,以致于他心里面有了“不洁”的想法,于是他付出行动,与乌利亚的妻拨示巴通奸,后来他又用手段把“拔示巴”的丈夫“乌利亚”给杀了,大卫在这件事情上大大得罪了上帝,上帝差遣先知拿单告诉大卫:

    你既藐视我,娶了赫人乌利亚的妻为妻,所以刀剑必永不离开你的家。[撒下12:10]

    耶和华如此说,我必从你家中兴起祸患攻击你。我必在你眼前把你的妃嫔赐给别人,他在日光之下就与她们同寝。你在暗中行这事,我却要在以色列众人面前,日光之下,报应你。[撒下12:11.12]

    大卫知道他在这件事情上得罪了耶和华,在他祈求中的话语里我们看见他说:

  “因为我知道我的过犯,我的罪常在我面前。”[诗51:3]

    大卫说:“我‘知道’我的过犯,我的罪常在我面前”,我觉得这句是难能可贵的!人无完人,圣经中说:

    因为世人都犯了罪,亏缺了神的荣耀。[罗3:23]

    我们每个人都可以在上帝的面前问问我们自己,当我们活在罪恶过犯中的时候,我们是否“知道我的过犯”?圣经中说:

    我们若认自己的罪,神是信实的,是公义的,必要赦免我们的罪,洗净我们一切的不义。[约一1:19]

    大卫诚实地在神面前忏悔,他承认他得罪了耶和华,他在神面前回转,他支取了赦罪之恩。圣经中记载:

    大卫对拿单说,我得罪耶和华了。拿单说,耶和华已经除掉你的罪,你必不至于死。[撒下12:13]
 
    感谢主,上帝赦免了大卫的罪!我们在想,大卫如果能保守住自己的心,他能够拒绝“眼目情欲上的诱惑”,那么他就不会受到亏损——要知道他因为犯罪作恶他心里面曾满了痛苦,满了不安,不仅如此,他的家庭中也遭受了很大的亏损。圣经中告诉我们——

    因为凡世界上的事,就像肉体的情欲,眼目的情欲,并今生的骄傲,都不是从父来的,乃是从世界来的。

    这世界和其上的情欲,都要过去。唯独遵行神旨意的,是永远常存。[约一2:16.17]

    感谢主,我们籍着大卫的经历我们需要切实地来回应神对我们的呼唤:

    你要保守你心,胜过保守一切。因为一生的果效,是由心发出。[箴4:23]

    二、要侍奉有力

    圣经中告诉我们:

    惟有你们是被拣选的族类,是有君尊的祭司,是圣洁的国度,是属神的子民,要叫你们宣扬那召你们出黑暗入奇妙光明者的美德。[彼前2:9]

    我们通过圣经的话语我们发现其实我们每位弟兄姊妹在神的面前都是“侍奉”神的人,对于侍奉神的人来说,上帝需要我们圣洁:

    圣经中写到:那召你们的既是圣洁,你们在一切所行的事上也要圣洁。因为经上记着说,你们要圣洁,因为我是圣洁的。[彼前1:15.16]

    我们知道,惟有圣洁,服侍才能有力量,圣经中告诉我们——

    然而,义人要持守所行的道。手洁的人要力上加力。[伯17:9]

    我们在大卫的诗篇里面我们发现,当大卫犯罪作恶得罪上帝的时候,他感到自己心里是那么痛苦不安,他感到自己的灵性是那么软弱,我相信他那个时候来侍奉上帝肯定是没有力量的。他祈求上帝说:

    不要丢弃我,使我离开你的面;不要从我收回你的圣灵。求你使我仍得救恩之乐,赐我乐意的灵扶持我。[诗51:12.13]

    大卫渴慕来服侍主,来见证主,来传扬主,来赞美主!他在主面前说:

    我就把你的道指教有过犯的人,罪人必归顺你。神啊,你是拯救我的神,求你救我脱离流人血的罪,我的舌头就高声歌唱你的公义。 主啊,求你使我嘴唇张开,我的口便传扬赞美你的话。 [诗51:13—15]

    我们看见大卫需要在神的面前从新得力,圣经中告诉我们:

    谁能登耶和华的山。谁能站在他的圣所。就是手洁心清,不向虚妄,起誓不怀诡诈的人。[诗24:4.5]

    惟有活在主的圣洁里面,我们的侍奉才有力量,难不怪大卫祈求说:

    求你用牛膝草洁净我,我就干净;求你洗涤我,我就比雪更白。 [诗51:7]

    三、要出来享福

    圣经中告诉我们:所以你们要脱去一切的污秽,和盈余的邪恶,存温柔的心领受那所栽种的道,就是能救你们灵魂的道。[雅1:23]

    上帝要我们顺服在他话语的里面,存温柔的心领受那所栽种的道。所以我们不要悖逆神的话语,圣经中说:

    惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽都顺利。 [诗1:2.3]

    我们知道我们也经历过,当我们顺服在主话语里面的时候,我们的心真会饱得滋润,在大卫生命的经历中,他写到:

    神啊,你是我的神,我要切切的寻求你。在干旱疲乏无水之地,我渴想你,我的心切慕你。[诗63:1]

    他写到:我还活的时候,要这样称颂你。我要奉你的名举手。我在床上记念你,在夜更的时候思想你,我的心就像饱足了骨髓肥油。[诗63:4.5]

    我们把前后大卫所写的诗篇对照一下,我们看见大卫在神面前犯罪的时候他是那么地痛苦,但当他在神的里面蒙恩的时候他是何等地欢喜与快乐!亲爱的弟兄姊妹,大卫生命的经历告诉我们: 当我们顺服神的时候,我们真可以享受生命的释放,享受生命所带给我们的欢喜与快乐。

    在我们的生命中,撒但常常设置一些网罗要我们往里面去钻,圣经中告诉我们:

    故此你们要顺服神,务要抵挡魔鬼,魔鬼就必离开你们逃跑了。[雅4:7]

    我们看见要“抵挡魔鬼”,要让魔鬼逃跑,这之前我们首先要“顺服神”!圣经中说——

    神叫孤独的有家,使被囚的出来享福。惟有悖逆的住在干燥之地。[诗68:6]

    亲爱的弟兄姊妹,你愿意出来享福吗?那首先让我们脱离那一切的悖逆,脱离那一切的污秽,让我们在主面前成为圣洁,愿主赐我们一颗顺服的心!感谢主!愿主赐福与我们直到永远,阿们!

Come from: http://blog.sina.com.cn/s/blog_4c02e80f0100clm1.html~type=v5_one&label=rela_nextarticle

《重生真义》王明道

推荐大家一本好书《重生意义》王明道,下面是这本书的自序,附上原地址:http://www.cclw.net/soul/cszy/index.html 方便阅读,感谢主!


  「重生」这个名词是大多数称为基督徒的人所熟悉的。但是真明白它的意义的人究竟有多少?真明白它的意义而且有过这种经验的人又究竟有多少?这却是一个严重的问题了。谈到重生的道理,我可以将所有称为基督徒的人分作四种:

  
第一种是明白重生的道理而且有过重生经验的。这种信徒是最好的。他们知道自己所站的地位,明了他们所得的恩典。他们的人生是满有指望的。他们毫不疑惑他们自己得救的事。他们过着一种与世人不同的生活。他们向别人有可作的见证,也能清楚指导别人蒙恩得救。

  
第二种是有过重生的经验,但不明白重生的道理的信徒。这种信徒在以往的一个时期已经得蒙重生,不过他们不明白重生的道理,他们不知道自己曾有过的那种经验就是重生的经验。一 旦有人问他们是否已经得了重生,他们或是完全不知道怎样对答,或是以为自己未曾得蒙重生。他们自己虽然有过重生的经验,但他们因为不明白的缘故,自然不免 常常怀疑自己得救的事,因而不能得着充分的平安与喜乐,也不能有坚强的盼望。他们常感忧虑,恐怕自己不能得救。他们过着一种战栗惧怕的生活。其实他们本来 不必,且不应当这样,因为他们已经有过重生的经验,他们已经得了救。他们应当因所得的救恩欢欣,应当靠主常常喜乐。可惜他们因为不明白重生的道理,所以白 白吃了许多无谓的苦。

  
第三种是明白重生的道理,但却未曾有过重生经验的信徒。这种人本不应当称为信徒,因为真信的人必定有过重生的经验。未曾有过这种经验的人便是未曾真信。不过他们曾加入一个教会,自以为是信徒,别人又承认他们是信徒。我们在这里姑且称他们为信徒好了。他 们听过一些人清清楚楚讲过重生的道理,或是读过什么讲解重生的道理的著作,因此明白了重生的道理。但是他们自己并末曾有过这种重生的经验。「重生」这一件 事在他们身上不是事实,乃是理论。他们明白,他们也会讲述,但他们自己总得不着其中实在的好处,也不能了解这种道理的真意思。他们不能帮助别人,这不但是 因为他们在重生的事上是门外汉,也因为别人在他们身上看不出一点重生的证据来,所以亳不羡慕他们所讲 的这种亳无实用的理论。

  
第四种是不明白重生的道理,也末曾有过重生经验的信徒。这种人本来也不应当称为信徒。不过他们曾加入一个教会,他们自己和别人都承认他们是信徒,我们也在这里姑且称他们为信徒就是了。

  在这四种信徒中,无疑第一种是最好的,我们都肯定他们是信徒。第二种信徒虽然不及第一种,但他们究竟是重生了的人,是神的孩子,是蒙恩得敉的。不过他 们因为不明白的缘故,失去许多信徒当享的权利,也不能多帮助人就是了。他们只要有一日明白了重生的道理,便可以与第一种信徒完全相同。第三种却与前两种大 不相同。他们虽然明白重生的道理,但末曾有过重生的经验。他们是未曾得救的人,未曾得着新的生命。他们所明白的道理不但与他们亳无益处,而且反倒很容易使 他们自满自欺。他们以为明白了重生的道理便可算已经得了重生,这种错误的观念或者竟致使他们不再追求重生的经验, 这比不明白重生道理的,更多一些危险。第四种与第三种人所差无几,这两种人同是未曾重生的人,也站在同一的地位。所不同的不过是前一种人,头脑里多有一些 圣经里的知识,后一种缺少这一些知识罢了。

  我写这本书的目的固然是要帮助读者明白重生的道理,但更要紧的乃是希望读者明白了重生的道理以后,用这种道理来测验自己的经验和生活,看看自己究竟是不是重生的人 ?

  如果这本书能帮助一些有了重生的经验,却未明白个中道理的读者去明白;又帮助一些未曾有重生经验的读者,不但明白重生的道理,而且得着重生的经验,著者写本书的目的就算达到了。

2009年4月14日星期二

跨浏览器的CSS固定定位{position:fixed}

不知道您是否留意了,浏览http://dancewithnet.com时,浏览器右下角有一个标着top的黑色直角三角形,可以点击它返回到正在浏览的网页页眉。当滚动网页时,它的位置一直没有任何改变,您感觉它怎么样?这就是通过CSS的定位属性{position:fixed}来实现的,通过它可以让HTML元素脱离文档流固定在浏览器的某个位置。

  1. IE7、Firefox、Opera,都支持CSS的{position:fixed},所以很容易实现(《详解定位与定位应用》
  2. IE6不支持该属性,但是在使用!DOCTYPE 声明指定standards-compliant(标准)模式可以通过CSS hack实现
  3. 上述声明下IE5和IE5.5目前没有发现通过纯粹CSS能够解决的方案,但是可以通过IE特有的expression在CSS中实现(移动网页时固定元素会动),这和常见浮动Logo广告利用Javascript实现原理是一样的,只不过可以直接写在CSS中比较简便的
  4. 利用IE独有的条件注释语句可以针对不同的IE版本精确设置,同时避免了这些代码被其他浏览器读到,个人认为比纯粹的CSS Hack好,如果你安装了多个IE(包括绿色版本),条件注释将会以最高版本的IE为标准。

实现代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
......
<style type="text/css">
#fixed{position:fixed;top:5em;right:0;......}   针对IE7、Opera、Firefox一行搞定
</style>
IE6中利用容器对溢出内容的处理方式来实现的
<!--[if IE 6]>
<style type="text/css">
html{overflow:hidden;}
body{height:100%;overflow:auto;}
#fixed{position:absolute;right:17px;}
fixed元素的绝对位置是相对于HTML元素来说,滚动条是body元素的,这是设置right:17px的原因
</style>
<![endif]-->
<!--[if lt IE 6]>
<style type="text/css">
#fixed{position:absolute;top:expression(eval(document.body.scrollTop + 50));}
</style>
<![endif]-->
</head>
<body>
<div id="wrapper">
......
</div>
<div id="fixed"><h2>{position:fixed}</h2></div>
</body>
</html>

代码演示1(单个IE,纯粹通过条件注释区分IE浏览器)

代码演示2(多个IE,通过条件注释+CSS hack区分IE浏览器,明显的比纯粹条件注释复杂且不易读,放上来主要是便于同个PC拥有多个IE浏览器朋友[一般应该做是web开发的]可以直接看到效果,下同。)

或许有人像我一样,在!DOCTYPE 声明是XHTML1.0 Strict或者是XHTML1.1时,喜欢在声明前面加上XML Prolog(如:<?xml version="1.0" encoding="utf-8"?>),但此时IE7以下都处于quriksQuirks(兼容)模式,所以上述针对IE6的Hack失效,这个时候你可以对IE6也通过expression来实现。

当IE6处于quriks模式时,IE6和IE5.5对CSS解析方式几乎雷同,所以当看到《position:fixed for Internet Explorer》时,我找到了在quriksQuirks模式下IE6/IE5.5/IE5统一的CSS解决方案:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh">
<head>
......
<!--[if lt IE 7]>
<style type="text/css">
body{overflow:hidden;}
#wrapper{height:100%;overflow:auto;}
#fixed{position:absolute;right:17px;}
</style>
<![endif]-->
</head>
<body>
<div id="wrapper">
......
</div>
<div id="fixed"><h2>{position:fixed}</h2></div>
</body>
</html>

代码演示3(单个IE,纯粹通过条件注释区分IE浏览器)

代码演示4(多个IE,通过条件注释+CSS hack区分IE浏览器)

对比两个纯粹的CSS hack发现,两个原理似乎相同,在于html元素和body元素的应用和对CSS的{position:fixed}的支持程度上,但是这实际上是一种Hack,基本上不具备通用性,知道这个方法就可以了。需要提醒的是IE6 standards-compliant模式下HTML元素不管给它设置什么样的高度和宽度,它的大小都始终充满整个浏览器的可视区域,而IE5 以及 Quirks 模式下html元素和body元素所有宽高设置都会被忽略而保持充满浏览器的可视区域,更多内容请看《IE 中的 html 元素》

或许有人会想,现在可以引入了XML Prolog又能用纯CSS方法解决了IE7以下的问题,这下爽了,但是加上XML Prolog后突然发现IE6处于quriksQuirks模式,以前在standards-compliant模式下的设计又变形了,呵呵,这就是咱们搞IE的下场。

Come from: http://dancewithnet.com/2007/04/19/cross-brower-css-fixed-position/

详解定位与定位应用

定位一直是WEB标准应用中的难点,如果理不清楚定位那么可能应实现的效果实现不了,实现了的效果可能会走样。如果理清了定位的原理,那定位会让网页实现的更加完美。

定位的定义:

在CSS中关于定位的内容是:position:relative | absolute | static | fixed

static 没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级。
relative 不脱离文档流,参考自身静态位置通过 top,bottom,left,right 定位,并且可以通过z-index进行层次分级。
absolute 脱离文档流,通过 top,bottom,left,right 定位。选取其最近的父级定位元素,当父级 position 为 static 时,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。
fixed 固定定位,这里他所固定的对像是可视窗口而并非是body或是父级元素。可通过z-index进行层次分级。

CSS中定位的层叠分级:z-index: auto | namber; 

auto 遵从其父对象的定位
namber  无单位的整数值。可为负数

定位的原理:

可以位移的元素 (相对定位)

在本文流中,任何一个元素都被文本流所限制了自身的位置,但是通过CSS我们依然使得这些元素可以改变自己的位置,我们可以通过float来让元素浮动,我们也可以通过margin来让元素产生位置移动。但是事实上那并非是真实的位移,因为,那只是通过加大margin值来实现的障眼法。而真正意义上的位移是通过top,right,bottom,left(下称TRBL,TRBL可以折分使用。)针对一个相对定位的元素所产生的。我们看下面的图:


我们看图中是一个宽度为200px,高度为50px,margin:25px; border:25px solid #333; padding:25px; 相对定位的元素,并且位移距上50px,距左50px。而下方是一块默认定位的黑色区块。我们看到这个处在文本流的区块被上面的相对定位挡住了一部分,这说明:“当元素被设置相对定位或是绝对定位后,将自动产生层叠,他们的层叠级别自然的高于文本流”。除非设置其z-index值为负值,但是在Firefox等浏览器中z-index为负值时将不会显示。并且我们发现当相对定位元素进行位移后,表现内容已经脱离了文本流,只是在本文流中还为原来的相对定位留下了原有的总宽与总高(内容的高度或是宽度加上margin\border\padding的数值)。这说明在相对定位中,虽然表现区脱离了原来的文本流,但是在文本流中还还有此相对定位的老窩。这点要特别注意,因为在实际应用中如果相对定位的位移数值过大,那么原有的区域就会形成一块空白。

并且我们注意,定位元素的坐标点是在margin值的左上边缘点,即图中的B点。那么所有的位移的计算将以这个点为基础进行元素的推动。当TRBL为正值时位移的方向是内聚的,由些可推,当TRBL为负值时位移的方向是外放的。在图片有位移的箭头指向标识,带有加号的是正值位移方向,带有减号的是负值位移方向。关于位移方位,可以延伸阅读怿飞的《由浅入深漫谈margin属性(一)

可以在任意一个位置的元素 (绝对定位)

如上所述:相对定位只可以在文本流中进行位置的上下左右的移动,同样存在一定的局限性,虽然他的表现区脱离了文本流,但是在文本流却依然为其保留了一席之地,这就好比一个打工的人他到了外地,但是在老家依然有一个专属于他的位置,这个位置不随他的移动而改变。但是这样很明显就会空出一块空白来,如果希望文本流抛弃这个部分就需要用到绝对定位,绝对定位不光脱离了文本流,而且在文本流中也不会给这个绝对定位元素留下专属空位,这就好比是一个工厂里的工人,如果有一个工人走了自然会要有别的工人来填充这个位置。而移动出去的部分自然也就成为了自由体。绝对定位将可以通过TRBL来设置元素处在任何一个位置。在父层position属性为默认值时,TRBL的坐标原点以body的坐标原点为起始。看下图:

上图可知,文本流中的内容会顶替绝对定位无素的位置,一点都不会客气。而绝对定位元素自然的层叠于文本流之上。而在单一的绝对定位中,定位元素将会跑到网页的左上角,因为那里是他们的被绝对定位后的坐标原点。

被关联的绝对定位

上面说的是单一的绝对定位,而在实际的应用中我们常常会需要用到一种特别的形式。即希望定位元素要有绝对定位的特性,但是又希望绝对定位的坐标原点可以固定在网页中的某一个点,当这个点被移动时绝对位定元素希望能保证相对于这个原坐标的相对位置。也就是说需要这个绝对定位要跟着网页移动,而并且是因定在网页的某一个固定位置。通常当网页是居中形式的时候这种效果就会显得特别的重要。要实现这种效果基本方式就是为这个绝对定位的父级设置为相对定位。那么绝对定位的坐标就会以父级为坐标起始点。

虽然是如此,但是这个坐标原点却并不是父级的坐标原点,这是一个很奇怪的坐标位置。我们看一下模型图示:

我们看到,这个图中父级为黑灰色区块,子级为青色区块。父级是相对定位,子级是绝对定位。子级设置了顶部位移50个像素,左倾位移50个像素。那么我们看,子级的坐标原点并不是从父级的坐标原点位移50个像素,而是从父级块的padding左上边缘点为坐标起始点(即A点)。而父级这里如果要产生位置移动,或是浏览器窗口大小有所变动都不会影响到这个绝对定位元素与父级的相对定位元素之间的位置关系。这个子级也不用调整数值。

这是一种很特别并且也是非常实用的应用方式。如果你之前对于定位的控制并不自如的话,相信看完对这里对定位的解释一定可以把定位使用得随心所欲。

总在视线里的元素 (固定定位)

由于广告的滥用,使得一些浏览器软件都开始有了广告内容拦截,使得一些很好的效果现在都不推荐使用了。比如让一个元素可能随着网页的滚动而不断改变自己在浏览器的位置。而现在我可以通过CSS中的一个定位属性来实现这样的一个效果,这个元素属性就是曾经不被支持的position:fixed; 他的含义就是:固定定位。这个固定与绝对定位很像,唯一不同的是绝对定位是被固定在网页中的某一个位置,而固定定位则是固定在浏览器的视框位置。

虽然原来的浏览器并不支持过个属性,但是浏览器的发展使得现在的高级浏览器都可以正确的解析这个CSS属性。并且通过CSS HACK来让IE6都可以实现这样的效果(目前无法使IE5.x)实现这种效果。为了不使本文变成冗长的大论这里只给出这个实例算是这篇文章的结束。关于这个实例的一些问题大家可以自行分析。有不理解的地方可以给我留言!

Come from: http://andymao.com/andy/post/70.html

2009年4月13日星期一

诗篇139篇分享

诗篇139篇是大卫经历神的同在,体会到神的本性,和神与人的关系后所写成的。只有当我们真正听到诗人藉这篇诗所要说的话,我们才能与诗人一起祷告:“神啊,求你监察我,知道我的心思,试炼我,知道我的意念,看在我里面有甚麽恶行没有,引导我走永生的道路。”

诗篇139篇1 – 6节:赞美神的无所不知

1节:耶和华啊,你已经监察我,认识我。
大卫的目的不是要向一个与人没有关系的抽象的神说话,他要表明神对他的认识是很个人的。原来神认识人,不是普遍的认识;是对每一个人,就是对你﹑对我个别的认识。这是一个蒙福的真理,是三位一体神像大卫显明的,使我们可以阅读﹑相信﹑得安慰 ------ 神是我们的神,他认识我们。

2节:我坐下,我起来,你都晓得;你从远处知道我的意念。
神到底知道些什么呢?他知道诗人坐下和起来,这种强烈的对比是指大卫的一生。在日常生活中,我们可能很容易忘记神,我们的生活是多方面的,有时候我们很有活力,有时候很安静,坐下来或舒展一下,我们去思想,沉思。不同的活动使生命有变化,一样紧接一样的事情吸引着我们的思想和注意力,我们可能全神贯注于一些暂时的事物上,忘记了神与我们同在。然而神知道我们的一生中每一分秒的光景,我们每一个姿势,每一个活动,我们的生活方式没有一分钟能向神隐瞒,当我们休息,头脑在做冷静思考时,神是知道的;当我们为生活奔波劳碌,我们的心中可能忘记神的时候,他是知道的。人不可能逃避神,他知道我们个人生命的光景。
神不单知道我们生活外在的方向,也知道我们心中的意念。我们心中所存的目的和意向,神是知道的。神不单是知道这些意向,就是这些意向的来源,为何会在我们心中发出,怎样影响我们,神是完全明白这一切的。
很多时候我们自己也不能完全明白自己心中产生的意图,苏格拉底的忠告:“了解你自己。”但我们怎样才能了解自己呢?我们最多也只能做到对自己的意向和意图有粗略的概念,只有神才有全备的知识,有“一位”他知道我们,了解我们,我们可能把自己某方面想自己隐藏,但却不能向“那一位”隐藏。
你从“远处”知道我的意念 ------ 人在地上,神在天上,但神认识人,比人认识自己更深。诗篇11篇4节 ------ 耶和华在他的圣殿里;耶和华的宝座在天上;他的慧眼查看世人。------他是何等奇妙的神啊!

3节:我行路,我躺卧,你都细察;你也深知我一切所行的。
诗人说,神已经彻底地监察它的道路和安身之所;它受的一切苦难,他的一切行动,一切影响他的事物,神都知道。人在巅峰状态时,也不过是充满矛盾;人对自己缺乏应有的认识;因此人自己无法常常保持自信!人不能再每时每刻说出自己为什么有这样的表现,对于无数影响他的行为的或好或坏的影响,人又毫无所觉。但神深切地认识和了解人,他甚至了解人生活上每一个小节。

4节:耶和华啊,我舌头上的话,你没有一句不知道的。
我们舌头上要说的话,是表达我们心中形成的思想,无论是思想话语,神都知道。我们可以向人隐藏我们的思想,这该是多好呢。别人不知道我们心中的怒气﹑嫉妒﹑憎恶,该是多好呢。常常存于我们心中的邪恶思想,我们也可以向人隐藏,但是我们却不能向神隐藏,为这缘故我们必须保守我们的心。因为一生的果效是由心发出,要是邪恶控制我们的心,这些恶念便可能以邪恶的话表现出来,这些都不能向神隐藏,因为神知道我们本来的光景。我们深入思想这真理时,我们便会坚强起来保守自己内心纯洁不受邪恶所侵,又保守口舌不说狡诈的话。

5节:你在我前后环绕我,按手在我身上。
如果是大卫向前走神就在那里,向后走神也在那里,无论他朝那一个方向走,始终不能逃避那无所不知的神。

6节;这样的知识奇妙,是我不能测的,至高,是我不能及的。
人对事物的认识只是受造之物的知识,人所拥有的只是一种有限的认识,人不能对任何事物有最详尽,或极彻底的洞察或认识,因为他的头脑是有限的,所以可以知道或认识的亦有限,神的知识属于“无限者”,人的知识则属于“有限者”,而两者之间是截然不同,就像受造者与创造者一般不能混为一谈。
神的知识是至高 ------ 人不能及,因为这是在人能达到的范围之外;因此人是不能及,人不能及神所拥有的知识,就好像人不能成为神一样。

诗篇139篇7 – 12节:赞美神的无所不在

7节:我往哪里去躲避你的灵?我往哪里逃﹑躲避你的面?
在伊甸园里,亚当和夏娃藏在树丛中,躲避神的面,当耶和华对他们说话时,这堕落了的人的第一句话是:“我在园中听见你的声音。”“你的声音”------ 这是人一有机会就想逃避的,今日有些人要逃避“你的声音”,他们听见神的声音时,便设法抑制和压抑自己不去想到神,令我们愚蠢地尝试逃避神的,是我们的罪,但是,没有人能逃避神;其实逃避神唯一的方法是投靠他,因为只有在他里面,我们才能逃避因犯罪而带来的刑罚。

8节:我若升到天上,你在那里;我若在阴间下榻,你也在那里。
天上和阴间不单是在距离上是分隔,在性质方面亦完全不同。在天上有神的宝座,也有属神的人与神在一起;另一方面,阴间则是恶人去的地方,他们在那里受到惩罚。但是,无论是天上或阴间都是在神的掌管之下,他在天上也在阴间。神在天上祝福属他的人,在阴间他却在那些可怒之子中间,实行报应和惩罚。无论是天上和阴间都不能脱离神的管辖,因为神是无处不在的。

9节:我若展开清晨的翅膀,飞到海极居住,

清晨的翅膀,一般是指黎明,也即是指日出之地的东方,因而与西方------ 海的极处------ 相对;也可以指清晨的翅膀迅速地展开。当一个人望向东方时,首先看到有一点的光,这光越来越强烈,突然一线线的光就想玫瑰红的手指向北方和南方伸展,跟着太阳升起,光芒掩盖大地,就像大卫以“玫瑰红的手指般的黎明”的速度,他这样的速度也不能逃脱神。
大卫提及海的极处,他的意思是人所能去最远的地方,他也不能逃避神,因为神也在海的极西之处。

10节:就在那里,你的手必引导我;你的右手也必扶持我。
就是无论大卫举起清晨的翅膀,还是居住在海的极处,无论那地方离耶路撒冷多远,神都用手引导他。虽然人不能逃避神,但是大卫在海的极处见到神的时候,神不单只没有惩罚他,还引导他。神的手是指大的能力,大卫是说:“就是在海的极处,离开耶路撒冷异常遥远,在那里神安慰的能力仍然存在。”
神的能力或手引导大卫,就好像牧人带领他的羊群,或父亲带领儿子一样,那地方是遥远的,是大卫不熟悉的,但是神的能力在引导他,这里暗示无论大卫在那里,神的手都在引导他------在耶路撒冷他自己的宫中,神在带领他,甚至在一处向海的极处一般遥远的地方,神亦在带领他------它既不能逃避神,已不能摆脱他的护理。

11节:我若说:黑暗必定遮蔽我,我周围的亮光必成为黑夜;
黑暗是深沉的,人以为要是有任何事物能蒙避神,就只能是黑暗了。

12节:黑夜也不能遮蔽我,使你不见,黑夜却如白昼发亮。黑暗和光明,在你看都是一样。
黑暗遮蔽了大卫,光明像黑夜围绕他,但甚至是这样的黑暗也不能蒙蔽神。人们以为没有人能看透的浓厚的黑暗,也不是厚的连神也看不透的,实际上对神来说,这黑暗就想不存在一般,就像亮光一般。
在神的眼中,是夜是昼,是明是暗都无所谓,两者都不能影响神或限制神,因为神两样都不用依靠,它是在一切它所创造的事物之上,包括了昼和夜,太阳光不能为他带来亮光,夜的黑暗也不能为他带来安息,他住在不能接近的光明中,他就是光,它不需要世上的光明或黑暗。

诗篇139篇13 - 16节:赞美神的造物奇妙

13节:我的肺腑是你所造;我在母腹中,你已覆庇我。

这一节带出了为何说神是无所不知和无处不在的原因,这是因为神是创造者。神知道大卫生命的全部,包括它外在生活和内心的思想,人没有任何方法可以逃避这位神,神所以有全知和无处不在的能力,是因为神创造了一切,也创造了大卫。
一般人所说的创造和明白神是我们个人的创造者,完全是两回事,我们不是偶然产生的,不是以一种不能解释的方法,偶然地出现在人类历史中,我们在世上是因为神创造了我们,而在我们被造的那一刻,甚至尚未出生之时,我们就完全在他的照顾下。
神关心我们,在我们还未出生,还在母胎之中的时候,神便已看守我们的道路,他这样做,是因为他把我们塑造成人,它使胚胎成形,从最初的时候,我们便已在他的手中。

14节:我要称谢你,因我受造,奇妙可畏;你的作为奇妙,这是我心深知道的。
一个人不可能想到神和他的奇妙工作,而不发出赞美之声。要是有谁能够谈到神的伟大而无动于衷,他便是个可怜的人。凡认识神又爱神的人,是不能谈到神而不带有感情的。神创造工作的伟大,会唤起人心中无限的敬仰和赞美。当我们虔敬的心开始思想神的伟大时,它便会被惊讶﹑爱心和赞美所融化。
一个婴孩的诞生确实令人产生敬畏的心!在母腹中受精的奇妙行为展开之后,生命就开始了,成长的过程亦开始,这个胚胎有一天将从母体中出来,于是一个生命就诞生了,这些诚属可畏的事,当人想到这些事时,便会开始明白那能创造又带来生命的神的伟大!
生命的诞生和胎儿的形成时种种奇妙的情形,应该令我们的内心产生畏惧,因为这时我们是面对生命的创始者。

15节:我在暗中受造,在地的深处被联络;那时,我的形体并不向你隐藏。
胎儿对于人是一种秘密,因为胎儿是被母腹包裹着,但是在神眼中,却一点也不是秘密或隐藏。大卫是在暗中受造,因为他的胚胎的形成和组成都是在他母亲的体内。而神却是清楚了解和知晓的。我们存在的根源是在他的手中。

16节:我未形成的体质,你的眼早已看见了;你所定的日子,我尚未度一日你都写在你的册上了。
大卫说的“日子”是指他必须经历的人生的成败得失。他的一生,其中每一天所经历的一切事情,神都写在他的册上了。
大卫的一生不是由自己决定,它不是自己命运的主宰,也不是操纵自己灵魂的人,并且任何人也不是这样,早在大卫未来到世上之前,他的日子已由神亲自决定了,神是有计划的,它对发生的事不会感到意料之外,他知道未来将发生的事情,因为他自己决定未来,大卫要渡过一个神早已为他安排的一生。
同时,我们可以满有信心地说,神的预定丝毫不会损害我们做人的责任感,神藉着圣经给我们很多的命令,我们无需把这些命令,跟圣经强调的神无上的权威(就是显示在神预定一切发生的事上的权威)加以协调,我们知道神既然同时表明他的权威和受造者的责任,就足以成为我们两者都要相信的保证,这两者在神里面得到协调,对信靠神的人便已足够,我们可以信任神,并可以把协调的问题交给神,大卫是愿意这样做的。

诗篇139篇17 – 18 节:赞美神的恩惠无穷

17节:神啊,你的意念向我何等宝贵!其数何其众多!
大卫不禁发出赞叹之声,他在诗篇发出感叹已经不是第一次,在别的地方他也曾对神的工作和思想发出惊叹:“耶和华啊,你的工作何其大!你的心思极其深!”(诗篇92篇5节),神的慈爱已唤起他敬仰之心:“神啊,你的慈爱何其宝贵!世人投靠在你翅膀的荫下。”(诗篇36篇7节)。
当我们默想圣经所启示的这些奥妙无穷的事件和那些伟大的真理时,我们感情上的激动不是笔墨所能形容的。大卫惊异而不禁喊出声来,因为他被正思索着的真理的无比伟大所慑服。这些思想是经常临倒他,并在他一生中深深地影响着他,这些源自于神的思想,揭示神是多么的伟大,并显出他是真正的无所不知和无所不在。

18节:我若数点,比海沙更多;我睡醒的时候,仍和你同在。
神的思想是如此众多,使大卫也数之不尽。圣经往往用沙来形容不能数算的东西,神对亚伯拉罕的应许就是个例子 ------ “……我必叫你的子孙多起来,如同天上的星,海边的沙…”(创世记22章17节),要是神的思想比沙更多,那么真是多得不可胜数了。 
唤起大卫敬仰和惊讶之心的神的思想,日夜都在他面前,使他不能逃避。黑夜不能把大卫跟神那些关乎大卫的思想隔开,当清晨来临时,他仍与神在一起。这里说当他醒来时,他仍与神在一起,暗示他整夜一直与神在一起,显明甚至黑夜也不能把神分隔开,无论是黑夜是清晨,他仍然与神在一起。“我睡醒的时候”大卫说:“仍和你同在。”

诗篇139篇19–24 节:赞美神以后的祈祷

19节:神啊,你必要杀戮恶人;所以,你们好流人血的,离开我去吧!

大卫刚刚面对面地看到神的实在,他用了不少时间去默想神那些无限的属性,他想到神的全知的时候,自然便继续想到神是无处不在的,然后又想到神的全能,因为这种能力在大卫的被造和形成方面显明出来。这样一位神是真正的神,是佩得所有人完全的和全心全意的爱。然而有人却反对这位神,并尽力使他的心意落空,这些人若不悔改归向神,就被除去。神既是神,要是他容许恶人继续顽劣地反对他并与他为敌,便显出他并不是真正厌恶罪恶。他必须采取行动,使人人看到他的全能和公义。
当我们以“祈祷文”祈祷时,我们所求的是同样的东西-------“愿你的国降临,愿你的旨意行在地上”,当我们祈求神的国快降临,我们同时亦在祈求撒旦的国遭毁灭,而当我们祈求撒旦的国被毁灭时,我们是要求一切组成这国度的人都被毁灭,要是神的国来临,那么一切阻碍这国度降临的都必须被除去。
这一位在知识上令大卫惊叹的神,是他们所憎恶的,虽然我们很难想像人会憎恶神,但是他们真是憎恶神的,他们是神的敌人,并极端的憎恶他。神当然不会容许他们继续行恶,神必会杀戮他们。
大卫继续指出恶人的特点,称他们为好流人血的人,这些人曾杀死无辜的人,是凶手和充满杀气的人,他们夺去人性命的时候,亦破坏了神的形象,因为人是按神的形象造的,大卫所敬慕的神却是恶人所鄙视的,由于他们这样的恶行,所以大卫不与他们为伍,他用命令的口吻对他们说:“离开我去吧!”神的敌人于是也成了大卫的敌人。

20节:因为他们说恶言顶撞你;你的仇敌也妄称你的名。
大卫在此之前刚刚想到神的伟大,这位神不是人创造出来的,相反地他自己是造物主,他一切的属性都是无限﹑永恒﹑不变的。大卫一直存着敬畏神的心,神的名是何等的伟大和无可限量!然而恶人竟蔑视这名字,这是大卫不能容忍的,因为这些人是神的敌人,所以他们亦是大卫的敌人。

21节:耶和华啊,恨恶你的,我岂不恨恶他们吗?攻击你的,我岂不憎嫌他们吗?

大卫知道他对这些人只能有一种反应------他必须恨恶他们,他的恨是来自一个真挚的渴望------就是神的心意必能确立,邪恶定遭消灭。人若不是以十足的恨去恨恶神的敌人,就是贬低了神的地位,并承认神和他的旨意都无需屹立;要是这些旨意只是部分而非全部成就,那么人也无需恨无神的敌人。因此,一个人要是希望神的旨意成就,希望神的圣名得到高举,便必须全心全意地﹑毫不犹豫地对抗一切妨碍神,及竭力要把神从宝座上推倒的人。
我们表现这种神要求我们具有的恨,乃是藉着努力运用恩典的方法,及为神的荣耀而活和永远享受他的坚决心志。有人说当最软弱的圣徒跪下时,撒旦看了也害怕。关于这真理的应用,情形也是一样。
让我们以真正虔诚的心来到神的面前,默想和研读他的话语,并活得像一个他用宝血救赎的人;以一种积极的方式,藉着事奉和爱神,将神的真理彰显出来;藉着爱心把真理说出来,因而表现出是真正关心神的真理。

22节:我切切地恨恶他们,以他们为仇敌。
我们爱神,不是以不完全的爱去爱,而是尽心﹑尽性﹑尽意去爱,我们全人全心必须奉献给神,并把我们一切的精力和努力都献上专为事奉神所用。
无论神爱什么,大卫也同样的爱,无论神恨恶什么,大卫也同样的恨。
我们不能自己选择恨的对象,我们从神学习应该恨恶什么,这是藉着深入地研读他的话语------圣经,除非我们与神同行,在一切事上依靠他,否则我们的恨,必然是一种错误的恨,而错误的恨就是罪。

23节:神啊,求你监察我,知道我的心思,试炼我,知道我的意念,
当一个人认识神原来是圣经所启示的神,他会希望神监察他,试验他,因为这愿望证明他需要神并愿意把自己献上。
圣经中常以心为掌管一个人的性格,要是神认识大卫的心,他必然认识大卫,因为人一生的果效是由心发出,当一个人能够把心向神敞开,可以肯定的是他的心是讨神喜悦的。

24节:看在我里面有什么恶行没有,引导我走永生的道路。

这也是我们应该选择的,让我们放弃肤浅的宗教生活,再一次认识神奇妙的尊荣,神是个灵,他一切荣耀的属性,都是无限﹑永恒﹑不变的。当我们想到这些事情,我们必须以敬拜和静默的态度向他叩拜。他是神,我们只是人,在这位神面前罪人是站立不住的。我们知道自己是罪人,曾经得罪了圣洁的神,让我们亦同样祈求他监察我们,认识我们的心,看看我们里面是否有任何恶行,让我们依靠他的怜悯,这怜悯是他的爱子------我们的主耶稣基督------所赐给我们的,他是唯一能领我们走上永生之道路的“那一位”。

IFRAME、JavaScript和AJAX在seo中的优化方法

搜索引擎都会在其帮助指南中明示,它们对IFRAME、JavaScript和AJAX中的文字信息不能进行有效索引,我们也称这几种网页组成部分为搜索引擎优化不友好元素。
一般网页的核心信息最好不要放置在这些不友好元素中,以防搜索引擎不能成功进行索引。这些核心信息包括带有该页面核心关键词的文本区域以及相关辅助信息,诸如重要导航,相关导航和文章正文。而那些内容描述与核心信息的相关性相去甚远的信息就建议放置在IFRAME、JavaScript、AJAX中,因为它们会对核心信息起到干扰。可以放置于搜索引擎不友好因素中的信息包括网站尾部的辅助导航、版权信息和页面的广告信息等。
一、IFRAME
框架结构或称帧结构(Frame)网页表现为一个网页内的某一块保持固定,其它部分信息可以通过滚动条上下或左右移动显示。框架型网页的另一个表现是,深层页面的域名通常不会在URL中体现出来,即使进入深层子页面,浏览器显示出来的URL仍是主页的URL。它的好处是:页面整体一致,更新方便。但大多搜索引擎无法识别框架,也没兴趣抓取其中内容。某些浏览器不支持框架页面。
如使用框架,必须在代码中使用“Noframes”标签进行优化,把Noframe标签看作一个普通文本内容的主页。在<Noframe></Noframe>区域中包含指向frame页的链接以及带有关键词的描述文本。同时在框架以外的区域也出现关键词文本。这样搜索引擎才能正确索引到框架内信息。
还有一个办法是采用iframe即内联框架(Inner Frame)技术来避免Frame带来的不便。所谓iframe也是框架的一种形式,它是相当于在主浏览器窗口内嵌一个子窗口,内容自动打开。Iframe可以嵌在网页中的任意部分,也可以随意定义其大小,其代码显示为: <iframe src=xx width=x height=x scrolling=xx frameborder=x></frame>
对搜索引擎来说,iframe中的文字是可见的,也可以跟踪到其中链接指向的页面,不过与用户所见不同的是,搜索引擎将iframe内容看成单独的一个网面内容,与被内嵌的页面无关。
二、JS
由于JS的内容不能被大多数搜索引擎检索,所以做网站的SEO时一般强调导航菜单等重要的代码部分尽量不使用JS。
部分网页左侧、右侧的相关文章、热门文章链接等,喜欢使用JS来调用。这又是一个JS产生的问题。如果大面积的链接都使用JS,无疑将大大降低搜索引擎抓取收录的机会。
正常情况下,网页尽量以<html>作为代码开始端。但采用JavaScript技术的网页往往在页面一开始就堆积大量java代码,以致meta及关键词迟迟不能出现,被推至页面底部,对搜索引擎很不友好。
两种方法改善:
将脚本移至页面底部 大部分java代码可移到页面结束标签之上,从而不影响网站功能。
将java脚本置入一个.js扩展名的文件 包含你的javascript的.js文件通常在网站访问者的浏览器中被缓存下来,使得下次访问速度加快,也使网站修改和维护更加方便。
三、AJAX
AJAX是异步JavaScript和XML的缩写形式,是一种网站互动应用开发技术,其直接效果是用户无加载一次,网页也可以实现页面内容刷新,由此极大提升速度和用户体验。
不过AJAX技术在搜索引擎优化方面被完全归入“糟糕”一类效果,因为搜索引擎不支持JavaScript,而AJAX是使用JavaScript发挥作用,因此搜索引擎机器人看不到AJAX发送的内容。比如,如果一个网站导航采用AJAX技术制作,那么搜索引擎无法通过导航系统深入抓取该网站首页以外的其它链接页面,同样,如果网页内容由AJAX生成,也无法为搜索引擎识别。
使用AJAX技术制作网站该如何兼顾用户体验的高效与搜索引擎优化呢?最简单的答案是确保导航与正文主体内容这两部分最核心的内容是html文件,这不仅有助于提升网站的搜索引擎可见度,还确保那些没有启用JavaScript的用户也能看到导航条内容和链接。以国际品牌Gucci.com为例,这个外观时尚新潮的网站制作几乎破坏了搜索引擎优化的所有规范,并且如果浏览器不支持JavaScript,则所见完全一片空白。

Come from: http://www.jkme.cn/post/64.html

JavaScript:prototype属性使用说明

prototype 是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,而且特殊的地方便在于:它是一个给类的对象添加方法的方法!这一点可能听起来会有点乱,别急,下面我便通过实例对这一特殊的方法作已下讲解:

  首先,我们要先了解一下类的概念,JavaScript 本身是一种面向对象的语言,它所涉及的元素根据其属性的不同都依附于某一个特定的类。我们所常见的类包括:数组变量(Array)、逻辑变量(Boolean)、日期变量(Date)、结构变量(Function)、数值变量(Number)、对象变量(Object)、字符串变量(String) 等,而相关的类的方法,也是程序员经常用到的(在这里要区分一下类的注意和属性发方法),例如数组的push方法、日期的get系列方法、字符串的split方法等等,

  但是在实际的编程过程中不知道有没有感觉到现有方法的不足?prototype 方法应运而生!下面,将通过实例由浅入深讲解 prototype 的具体使用方法:


1、最简单的例子,了解 prototype:
(1) Number.add(num):作用,数字相加
实现方法:Number.prototype.add = function(num){return(this+num);}
试验:alert((3).add(15)) -> 显示 18


(2) Boolean.rev(): 作用,布尔变量取反
实现方法:Boolean.prototype.rev = function(){return(!this);}
试验:alert((true).rev()) -> 显示 false

是不是很简单?这一节仅仅是告诉读者又这么一种方法,这种方法是这样运用的。


2、已有方法的实现和增强,初识 prototype:
(1) Array.push(new_element)
  作用:在数组末尾加入一个新的元素
  实现方法:
  Array.prototype.push = function(new_element){
        this[this.length]=new_element;
        return this.length;
    }
  让我们进一步来增强他,让他可以一次增加多个元素!
  实现方法:
  Array.prototype.pushPro = function() {
        var currentLength = this.length;
        for (var i = 0; i < arguments.length; i++) {
            this[currentLength + i] = arguments[i];
        }
        return this.length;
    }
  应该不难看懂吧?以此类推,你可以考虑一下如何通过增强 Array.pop 来实现删除任意位置,任意多个元素(具体代码就不再细说了)

(2) String.length
  作用:这实际上是 String 类的一个属性,但是由于 JavaScript 将全角、半角均视为是一个字符,在一些实际运用中可能会造成一定的问题,现在我们通过 prototype 来弥补这部不足。
  实现方法:
  String.prototype.cnLength = function(){
        var arr=this.match(/[^\x00-\xff]/ig);
        return this.length+(arr==null?0:arr.length);
    }
  试验:alert("EaseWe空间Spaces".cnLength()) -> 显示 16
  这里用到了一些正则表达式的方法和全角字符的编码原理,由于属于另两个比较大的类别,本文不加说明,请参考相关材料。


3、新功能的实现,深入 prototype:在实际编程中所用到的肯定不只是已有方法的增强,更多的实行的功能的要求,下面我就举两个用 prototype 解决实际问题的例子:
(1) String.left()
  问题:用过 vb 的应该都知道left函数,从字符串左边取 n 个字符,但是不足是将全角、半角均视为是一个字符,造成在中英文混排的版面中不能截取等长的字符串
  作用:从字符串左边截取 n 个字符,并支持全角半角字符的区分
  实现方法:
  String.prototype.left = function(num,mode){
        if(!/\d+/.test(num))return(this);
        var str = this.substr(0,num);
        if(!mode) return str;
        var n = str.Tlength() - str.length;
        num = num - parseInt(n/2);
        return this.substr(0,num);
    }
或:
String.prototype.left = function(num){
var a="";
var j=0;
for(var i=0;j<num;i++){
a +=this.charAt(i);
if(this.charAt(i).match(/[^\x00-\xff]/ig)!=null){
j+=2;
}else{
j+=1;
}
}
return a;
}
试验:
     alert("EaseWe空间Spaces".left(8)) -> 显示 EaseWe空间
     alert("EaseWe空间Spaces".left(8,true)) -> 显示 EaseWe空
  本方法用到了上面所提到的String.Tlength()方法,自定义方法之间也能组合出一些不错的新方法呀!

(2) Date.DayDiff()
  作用:计算出两个日期型变量的间隔时间(年、月、日、周)
  实现方法:
  Date.prototype.DayDiff = function(cDate,mode){
        try{
            cDate.getYear();
        }catch(e){
            return(0);
        }
        var base =60*60*24*1000;
        var result = Math.abs(this - cDate);
        switch(mode){
            case "y":
                result/=base*365;
                break;
            case "m":
                result/=base*365/12;
                break;
            case "w":
                result/=base*7;
                break;
            default:
                result/=base;
                break;
        }
        return(Math.floor(result));
    }
  试验:alert((new Date()).DayDiff((new Date(2002,0,1)))) -> 显示 329
     alert((new Date()).DayDiff((new Date(2002,0,1)),"m")) -> 显示 10
  当然,也可以进一步扩充,得出响应的小时、分钟,甚至是秒。

(3) Number.fact()
  作用:某一数字的阶乘
  实现方法:
  Number.prototype.fact=function(){
        var num = Math.floor(this);
        if(num<0)return NaN;
        if(num==0 || num==1)
            return 1;
        else
            return (num*(num-1).fact());
    }
  试验:alert((4).fact()) -> 显示 24
  这个方法主要是说明了递归的方法在 prototype 方法中也是可行的!

Come from: http://bokee.shinylife.net/blog/article.asp?id=455

javascript的prototype继承

基本的用法 把ClassA的一个实例赋值给ClassB ClassB就继承了ClassA的所有属性

<script>
function ClassA()
{
    
this.a='a';
}

function ClassB()
{
    
this.b='b';
}

ClassB.prototype
=new ClassA();
var objB=new ClassB();
for(var p in objB)document.write(p+"<br>");
</script>


从原型继承理论的角度去考虑 js的原型继承是引用原型 不是复制原型
所以 修改原型会导致所有B的实例的变化

<script>
function ClassA()
{
    
this.a='a';
}

function ClassB()
{
    
this.b='b';
}

ClassB.prototype
=new ClassA();
var objB=new ClassB();
alert(objB.a);
ClassB.prototype.a
='changed!!';
alert(objB.a);
</script>


然而 子类对象的写操作只访问子类对象中成员 它们之间不会互相影响
因此 写是写子类 读是读原型(如果子类中没有的话)

<script>
function ClassA()
{
    
this.a='a';
}

function ClassB()
{
    
this.b='b';
}

ClassB.prototype
=new ClassA();
var objB1=new ClassB();
var objB2=new ClassB();
objB1.a
='!!!';
alert(objB1.a);
alert(objB2.a);
</script>


每个子类对象都执有同一个原型的引用 所以子类对象中的原型成员实际是同一个

<script>
function ClassA()
{
    
this.a=function(){alert();};
}

function ClassB()
{
    
this.b=function(){alert();};
}

ClassB.prototype
=new ClassA();
var objB1=new ClassB();
var objB2=new ClassB();
alert(objB1.a
==objB2.a);
alert(objB1.b
==objB2.b);
</script>



构造子类时 原型的构造函数不会被执行
<script>
function ClassA()
{
    alert(
"a");
    
this.a=function(){alert();};
}

function ClassB()
{
    alert(
"b");
    
this.b=function(){alert();};
}

ClassB.prototype
=new ClassA();
var objB1=new ClassB();
var objB2=new ClassB();
</script>


接下来是致命的,在子类对象中访问原型的成员对象:
<script>
function ClassA()
{
    
this.a=[];
}

function ClassB()
{
    
this.b=function(){alert();};
}

ClassB.prototype
=new ClassA();
var objB1=new ClassB();
var objB2=new ClassB();
objB1.a.push(
1,2,3);
alert(objB2.a);
//所有b的实例中的a成员全都变了!!
</script>


所以 在prototype继承中 原型类中不能有成员对象! 所有成员必须是值类型数据(string也可以)

用prototype继承有执行效率高,不会浪费内存,为父类动态添置方法后子类中马上可见等的优点。

我就非常喜欢用prototype继承。

prototype继承是通过把子类的原型对象(prototype)设置成父类的一个实例来进行继承的。

只简单的这样设置继承的确如楼主所说,有不少缺点。总的来说有四个缺点:

  缺点一:父类的构造函数不是像JAVA中那样在给子类进行实例化时执行的,而是在设置继承的时候执行的,并且只执行一次。这往往不是我们希望的,特别是父类的构造函数中有一些特殊操作的情况下。

  缺点二:由于父类的构造函数不是在子类进行实例化时执行,在父类的构造函数中设置的成员变量到了子类中就成了所有实例对象公有的公共变量。由于JavaScript中继承只发生在“获取”属性的值时,对于属性的值是String,Number和Boolean这些数据本身不能被修改的类型时没有什么影响。但是Array和Object类型就会有问题。
  缺点三:如果父类的构造函数需要参数,我们就没有办法了。

  缺点四:子类原本的原型对象被替换了,子类本身的constructor属性就没有了。在类的实例取它的constructor属性时,取得的是从父类中继承的constructor属性,从而constructor的值是父类而不是子类。


我也曾经为了这四个缺点头疼过,于是对prototype继承进行改造。
我试了几种方法,下面是我觉得最好的一种。我把它写成Function对象的一个方法,这样用的时候方便。方法如下:
//类的继承-海浪版
Function.prototype.Extends = function (parentClass)
{
  
var Bs = new Function();
  Bs.prototype 
= parentClass.prototype;
  
this.prototype = new Bs();
  
this.prototype.Super = parentClass;
  
this.prototype.constructor = this;
}

Come from: http://www.cnblogs.com/goody9807/archive/2007/04/16/715109.html