leadscloud

Google SEO|外贸营销推广

亲爱的朋友,我是不是要对你说些什么,虽然我知道生活还是要继续,你永远也不会再来我这玩了,可是觉得失去你这个朋友是多么可惜的。人可能总爱回忆,回忆又总是徒增悲伤,我下定决心 不去回忆,不去写充满感情又幼稚的文字,日记也不写了,这些东西在我年轻的时候只是让我陷入无限的迷茫,却没曾帮助我走出过什么。

偶尔也会想对你说说自己的感情生活,或者对她的爱情,听听你的回答,怀念我们躺在床上彼此聊天的快乐,可是现在我只有自己一个人去思考了,这几天还是会去她的空间看看,也没什么东西也留不下什么,但就是想去。时间改变了什么,时间只让曾经浅浅的变成深深的。你和我啊,都不要去怀念什么,更不要没事思考什么生与死,这些你我都很明白,我们都是经历过的人,这些都不算什么可以言谈的,一个人有更多的时间去思考人生也许是要在它富起来后。而对我来说,生活才是真实的。

申城今天的天气不错,前几天一直是下雨,冷冷的温度也延续到今天,如果出去晒晒太阳那也挺舒服的,我却还在办公室加班,瞧瞧我的生活,是不是很单调无味。你的空间还一直在,却不可能更新了,然而我还是看到有人会到你那留言,09年的那个春天我们都不太喜欢。姑且相信你能听到我的话,也许我宁愿今天什么也不写,一眼两年了,我的心却愈发的冷了,现在与一些人的关系还算很好,可有时又很在乎别人对我的态度,为一些小事还是很会发脾气。现在开始不喜欢那些文采很好的人了,写太多东西的人心胸都不太开阔吧,特别是写那些小情调的文字,比如现在的我吧。

在阜阳的那段日子过的还不错吧,与你奔波于铜陵,芜湖,那几天你 也是很快乐的,现在倒有点后悔那段时间没与你说什么太多的话,不过与你一起去KTV的日子的确很快乐,那时真的是可以忘记很多不快乐的事。

还是不要回忆了,4月了,我还有很多的工作还有很多的计划,这个月对我很重要,要开始很多东西。

安好,朋友!

最近在用wordpress做一个网站,需要获得某个分类下的文章列表,下面是我网站上的代码。具体关于 WP_Query的用法可以参考:http://codex.wordpress.org/Function_Reference/WP_Query

1
2
3
4
5
6
7
8
<?php 
$recent = new WP_Query();
$recent->query('category_name='.$cat_name.'&amp;showposts=20');
while($recent->have_posts()) :
$recent->the_post();
the_title();
endwhile;
?>

方法一:直接在相关页面添加代码

把以下代码直接添加到你想出现面包屑导航的位置,比如 header.php 里面,也可以放在 single.php 页面的导航标题上面,你有可能需要添加的页面可能有:archive.php、archives.php、links.php、page.php。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
当前位置:[<?php bloginfo('name'); ?>](<?php bloginfo() »
<?php
if( is_single() ){
$categorys = get_the_category();
$category = $categorys[0];
echo( get_category_parents($category->term_id,true,' » ') );
the_title();
} elseif ( is_page() ){
the_title();
} elseif ( is_category() ){
single_cat_title();
} elseif ( is_tag() ){
single_tag_title();
} elseif ( is_day() ){
the_time('Y年Fj日');
} elseif ( is_month() ){
the_time('Y年F');
} elseif ( is_year() ){
the_time('Y年');
} elseif ( is_search() ){
echo $s.' 的搜索结果';
}
?>
方法二:通过 functions.php 调用

首先把以下代码添加到主题的 functions.php 文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
function dimox_breadcrumbs() {

$delimiter = '»';
$name = 'Home'; //text for the 'Home' link
$currentBefore = '<span>';
$currentAfter = '</span>';

if ( !is_home() &amp;&amp; !is_front_page() || is_paged() ) {

echo '<div id="crumbs">';

global $post;
$home = get_bloginfo('url');
echo '' . $name . ' ' . $delimiter . ' ';

if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
echo $currentBefore . 'Archive by category '';
single_cat_title();
echo ''' . $currentAfter;

} elseif ( is_day() ) {
echo '' . get_the_time('Y') . ' ' . $delimiter . ' ';
echo '' . get_the_time('F') . ' ' . $delimiter . ' ';
echo $currentBefore . get_the_time('d') . $currentAfter;

} elseif ( is_month() ) {
echo '' . get_the_time('Y') . ' ' . $delimiter . ' ';
echo $currentBefore . get_the_time('F') . $currentAfter;

} elseif ( is_year() ) {
echo $currentBefore . get_the_time('Y') . $currentAfter;

} elseif ( is_single() ) {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo $currentBefore;
the_title();
echo $currentAfter;

} elseif ( is_page() &amp;&amp; !$post->post_parent ) {
echo $currentBefore;
the_title();
echo $currentAfter;

} elseif ( is_page() &amp;&amp; $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '' . get_the_title($page->ID) . '';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
echo $currentBefore;
the_title();
echo $currentAfter;

} elseif ( is_search() ) {
echo $currentBefore . 'Search results for '' . get_search_query() . ''' . $currentAfter;

} elseif ( is_tag() ) {
echo $currentBefore . 'Posts tagged '';
single_tag_title();
echo ''' . $currentAfter;

} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $currentBefore . 'Articles posted by ' . $userdata->display_name . $currentAfter;

} elseif ( is_404() ) {
echo $currentBefore . 'Error 404' . $currentAfter;
}

if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __('Page') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}

echo '</div>';

}
}

最后在适当的地方(如方法一中提到的几个文件)添加以下代码调用

1
<?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?> 

有些网站为了防止别人复制都用js禁用了选择文字的功能,使得我们在复制文章时很麻烦,我写了个js暂时破解了这种限制,大家可以下载下来试试如何。

必须是chrome浏览器(版本4以上),firefox需要安装插件 greasemonkey

http://userscripts.org/scripts/show/100166

image

用google浏览器打开上面的网址,然后点击 install 就行了,大家可以在这个网站测试下,quarrycrusher.com 这个站是禁止复制的。

最近我看投资类书比较多,这是来自网事录的一篇投资类文摘,对思考有些帮助。

一个是逆反心理,一个是大众行为,不管怎样,这样一个是特立独行,一个是众人的一致行为,但是于事和人际关系都不是最佳。

大众行为只能是顺水推舟,人云亦云,没有主见和行动力。

逆反心理大多情况也是对事实规律的违反,总见的有点拔苗助长,往往有特别想法,不过离正常想法偏离太远,人说天才的想法就是疯子想法,可是这样逆反的心理真的需要克服。

如同做股票投资:趋势明显向好,逆反总认为不好,反之做空;趋势明显走坏,逆反总认为前途一片光明,从而做多;这样焉能培养一个良好心态呢?

投资大师沃伦 巴菲特就有关于独立思考的投资箴言:逆反行为和从众行为一样愚蠢。我们需要的是思考,而不是投票表决。不幸的是,伯特兰”罗素对于普通生活的观察又在金融界中神奇地应验了:“大多数人宁愿去死也不愿意去思考。许多人真的这样做了。”

是的,所以常说我思故我在,不管做出何种决定,都应该在付诸实施前三思而后行,凡事慢三拍是应该做到的。

谨以此文记录成长中的经历和想法,亦望有童鞋能够得到一些思考碎片。

节选投资大师的话加以吸收,话说站在巨人的肩头我们才更能高瞻远瞩,才能有更大成就和更多实效想法。

威廉.欧奈尔:
1、股市赢家法则是;不买落后股,不买平庸股,全心全力锁定领导股!
2、主流类中的股票,常能涨得惊天动地,但 其他平庸个股,连一丝涟漪都不会起!
3、不要懵懵懂懂的随意买股票,要在投资前扎实的做一些功课,才能成功!
4、放手让亏损持续扩大,这几乎是所有投资人可能犯下的最大亏损!
5、经验显示,市场自己会说话,市场永远是对的,凡是轻视市场能力的人,终究会吃亏的!

江恩
1、仅交易活跃的股票,避免介入那些运动缓慢,成交稀少的股票!
2、顺应趋势,花全部的时间研究市场的正确趋势,如果保持一致,利润就会滚滚而来!-

沃伦 巴菲特:
1.价廉物美:投资成功的关键在于,当市场价格大大低于经营企业的价值时,买入优秀企业的股票。
2.不犯大错:投资人并不需要做对很多事情,重要的是要能不犯重大的过错。
3.安全边际:架设桥梁时,你坚持载重量为3万磅,但你只准许1万磅的卡车穿梭其间。相同的原则也适用于投资领域。
4.独立思考:逆反行为和从众行为一样愚蠢。我们需要的是思考,而不是投票表决。不幸的是,伯特兰”罗素对于普通生活的观察又在金融界中神奇地应验了:“大多数人宁愿去死也不愿意去思考。许多人真的这样做了。”
5.不熟不做:投资者成功与否,是与他是否真正了解这项投资的程度成正比的。
6.覆水难收:重整旗鼓的首要步骤是停止做那些已经做错了的事。
7.按兵不动:有时成功的投资需要按兵不动。
8.恐惧和贪婪:要在别人贪婪的时候恐惧,而在别人恐惧的时候贪婪。
9.与好人为伍:一位所有者或投资者,如果尽量把他自己和那些管理着好业务的经理人结合在一起,也能成就伟业。
10.分析师与理发师:永远不要问理发师你是否需要理发。
11、风险来自你不知道自己正在做什么!
12、我从不打算在买入股票的次日就赚钱,我买入股票时,总是会先假设明天交易所就会关门,5年之后才又重新打开,恢复交易。
13、“我不会尝试跳过7尺的栅栏,我只会寻找一些可以跨过的1尺栏杆。”
14、“投资一门蠢人都可以做的生意,因为终有一日蠢人都会这样做。”
15、“如果发现自己在洞中,最重要的事就是不要再挖下去。”
16、“如开始就成功,就不要另觅他途。”
17、“我只做我完全明白的事。”
18、“如果我们不能在自己有信心的范围内找到需要的,我们不会扩大范围。我们只会等待。”
19、希望你不要认为自己拥有的股票仅仅是一纸价格每天都在变动的凭证,而且一旦某种经济事件或政治事件使你紧张不安就会成为你抛售的候选对象.相反,我 希望你将自己想象成为公司的所有者之一,对这家企业你愿意无限期的投资,就像你与家庭中的其他成员合伙拥有的一个农场或一套公寓。
20、如果我们有坚定的长期投资期望,那么短期的价格波动对我们来说就毫无意义,除非它们能够让我们有机会以更便宜的价格增加股份。
21、投资成功的关键是在一家好公司的市场价格相对于它的内在商业价值大打折扣时买入其股份。内在价值是一个非常重要的概念,它为评估投资和企业的相对吸引力提供了唯一的逻辑手段。内在价值的定义很简单:它是一家企业在其余下的寿命史中可以产生的现金的折现值。
22、必须要忍受偏离你的指导方针的诱惑:如果你不愿意拥有一家公司十年,那就不要考虑拥有它十分钟。
23、我们欢迎市场下跌,因为它使我们能以新的、令人感到恐慌的便宜价格拣到更多的股票。
24、恐惧和贪婪这两种传染性极强的灾难的偶然爆发会永远在投资界出现。这些流行病的发作时间难以预料,由它们引起的市场精神错乱无论是持续时间还是传染 程度同样难以预料。因此我们永远无法预测任何一种灾难的降临或离开,我们的目标应该是适当的:我们只是要在别人贪婪时恐惧,而在别人恐惧时贪婪。
25、通过定期投资于指数基金,那些门外汉投资者都可以获得超过多数专业投资大师的业绩!
26、在大众贪婪时你要缩手,在大众恐惧时你要进取。当人们忘记“二加二等于四”这种最基本的常识时,就该是脱手离场的时候了。
27、就算美联储主席格林斯潘偷偷告诉我他未来二年的货币政策,我也不会改变我的任何一个作为。
28、一个百万富翁破产的最好方法之一就是听小道消息并据此买卖股票。
29、不能承受股价下跌50%的人就不应该炒股。
30、股市是狂欢与抑郁交替发作的场所,注意股市的目的,只是想确定有没有人最近做了愚蠢的事,让我有机会用不错的价格购买一家好的企业。
31、因贪婪或受了惊吓的时候,他们时常会以愚蠢的价格买进或卖出股票。

乔治 索罗斯:
1.选择一个行业股票时,要选两家,但不是随便找两家,应选一家最好和一家最差的!
2.错误并不可耻,可耻的是错误已经显而易见了却还不去修正!
3.如果你没有做好承受痛苦的准备,那就离开吧,别指望会成为常胜将军,要想成功,必须冷酷!
4.承担风险。无可指责,但同时记住千万不能孤注一掷!
5、世界经济史是一部基于假象和谎言的连续剧。要获得财富,做法就是认清其假象,投入其中,然后在假象被公众认识之前退出游戏!
6、凡事总有盛极而衰的时候,大好之后便是大坏。重要的是认清趋势转变不可避免。要点在于找出转折点。

吉姆 罗杰斯:
1.“我并不觉得自己聪明,但我确实非常、非常、非常勤奋地工作。如果你能非常努力地工作,也很热爱自己的工作,就有成功的可能”。
2.“我可以保证,市场永远是错的。必须独立思考,必须抛开羊群心理。”
3、股票投资,必须具备正确判断的能力,这样才不致于盲目随从,酿成失败!
4、买其所值,卖其疯狂。

彼得 林奇投资名言:
1.买进有盈利能力企业的股票,在没有极好的理由时不要抛掉。
2.投资股市绝不是为了赚一次钱,而是要持续赚钱。如果想靠一“博”而发财,你大可离开股市,去赌场好了。
3.一个钟情于计算,沉迷于资产负债表而不能自拔的投资者,多半不能成功。
4.某只股票比以前便宜不能成为买进的理由,同样仅仅因为它比以前贵就卖掉也不是理性的方式。
5、华尔街从没见过一个投资成功的分析师,破产的倒看到不少。

投资的耐心:
1、耐心等待确定信号的出现,避免高风险的模糊不清阶段的盲目投资!—-[英国]伯妮斯. 科恩
2、耐力胜过头脑。 彼得.林奇
3、巴菲特:股市在已经一片看好声中,你将付出很高的价格进场。
4、一个事实:美国交易巨子查理”丹尼斯每年95%利润来自5%的交易!
5、罗杰斯:平常时间,最好静坐,愈少买卖愈好,永远耐心地等候投资机会的来临。
6、巴菲特:假设自己手中只有一张可打20个洞的投资决策卡。每作一次投资,就在卡片上打一个洞。相对地,能做投资决定的次数也就减少一次。假如投资人真受到这样的限制,他无们就会耐心地等待绝佳的投资机会出现,而不会轻率地作决定。
7、罗杰斯:“我只管等,直到有钱躺在墙角,我所要做的全部就是走过去把它捡起来。”

不熟不做:
1、投资的成功是建立在已有的知识和经验基础上的!—-[美国]罗伊.纽伯格
2、股票市场是有经验的人获得更多金钱,有金钱的人获得更多经验的地方! —[美国] 朱尔
3、我从来不在我不懂的事情上投入大量的金钱。 彼得.林奇
4、不进行研究的投资,就象打扑克从不看牌一样,必然失败! 彼得.林奇
5、罗杰斯:除非你真的了解自己在干什么,否则什么也别做。
6、罗杰斯:我的忠告就是绝不赔钱,做自己熟悉的事,等到发现大好机会才投钱下去。
7、彼得.林奇:买一种股票时,不应因便宜而购买,而应该看是否了解它!

关于股市预测
1、证券分析之父格雷厄姆曾说:“如果说我在华尔街60多年的经验中发现过什么的话,那就是没有人能成功地预测股市变化。”
2、巴菲特也说:“我从来没有见过能够预测市场走势的人。”
3、彼得”林奇:“不要妄想预测一年或两年后的股市走势,那是根本不可能的。”
~
股票市场最惹人发笑的事情是;每一个同时买和同时卖的人都会自认为自己比对方聪明!—-[美国]费瑟
始终遵守你自己的投资计划的规则,这将加强良好的自我控制! —-[英国]伯妮斯.科恩]
每个笨蛋都会从自己的教训中吸取经验,聪明人则从别人的经验中获益! —[德国] 俾斯麦
伯纳德.巴伦奇:“如果投机家有50%的选择是正确的,那他就是很幸运了。假如他意识到自己的错误,并能及时止损的话,即使只有30%――40%的选择是正确的,他也有机会给自己创造足够的财富。”
投资中唯一可以确定的,就是不确定。

来源:逆反与大众行为

YSlow 是雅虎基于网站优化规则推出的 Chrome 扩展,帮助你分析并优化网站性能。

十分流行的雅虎网站优化规则在十几个方面给你的网站提出优化建议,包括**尽可能的减少 HTTP 的请求数 **、使用 Gzip 压缩将 CSS 样式放在页面的上方将脚本移动到底部减少 DNS 查询等十几条规则,具体见规则原文

YSlow 下载地址:https://chrome.google.com/extensions/detail/ninejjcohidippngpapiilnmkgllmakh#

身边有不少人都很关心利比亚的乱局,甚至还有一个比利亚的球迷一直以为是比利时出事了。中国投了一票支持制裁,一票弃权禁飞,让人欣喜。今天又有不少人为卡扎菲吵的不可开交,当然他们分成了两派,一派的意思是卡扎菲作恶多端,专横腐败,滥杀平民,炸毁客机,应该被联军消灭,还有一派的意思是那是利比亚的内政,其他国家不应该干涉,西方国家无非想从利比亚得到一些石油或者转移自己国家的内部矛盾,居心叵测。

朋友转而问我的观点,我说,我的观点特别简单,独裁者没有内政,杀戮者当被侵灭。昨天正好是十九年来最大的月亮,无论是谁,无论为了什么,代表月亮消灭他。

韩寒原文链接:http://blog.sina.com.cn/s/blog_4701280b01017ige.html


多思考下不同的声音总能有意外的收获,但也往往犯与别人争辩的错误。有些事情自己知道就行了,你永远无法叫醒装睡的人,这句话此刻最明白,以后尽量少与人争辩!

当我们开通宽带时,经常说拉一个2M的宽带,很多人误以为下载的速度达到2M.无论你用的是电信,联通,抑或长成宽带的,他们告诉你时都说网速是4Mb/s,其实我们往往不明白4Mb与4MB的区别。

这儿介绍下Kbps与KBps的区别

Kbps的意思(小写的b)

bps中的ps指的是per second ”每秒"的意思,也就是 "/s”, 大写的K代表千位,Kb指的是多少千位。为了在直观上显得网络的传输速度较快,一般公司都使用kb(千位)来表示。运营公司说的速度都是指这个。

KBps的意思(大写的B)

KBps表示是每秒传送多少千字节 。1KBps=8Kbps 即一字节等于8位。所以如果ADSL上网的网速是512Kbps(运营公司网站上会标为512K),那么转换成字节就是512/8=64KBps(这才是我们常说的64K). 我们电脑中的软件用的都是这个单位。 一般4M的带宽理论实际最大下载速度应该是512KBps,实际上因为种种原因,我们的感受只有400多而已。

上篇文章讲到了事件绑定的3中常用方法:传统绑定、W3C绑定方法、IE绑定方法。但是,在实际开发中对于我们来讲重要的是需要一个通用的、跨浏览器的绑定方法。如果我们在互联网上搜索一下会发现许多方法,一下是比较知名的几种方法:

在开始学期下面几种方法之前,应当讨论一下,一个好的addEvent()方法应当达到哪些要求:

a、支持同一元素的同一事件句柄可以绑定多个监听函数;

b、如果在同一元素的同一事件句柄上多次注册同一函数,那么第一次注册后的所有注册都被忽略;

c、函数体内的this指向的应当是正在处理事件的节点(如当前正在运行事件句柄的节点);

d、监听函数的执行顺序应当是按照绑定的顺序执行;

e、在函数体内不用使用 event = event || window.event; 来标准化Event对象;

一、John Resig 所写的 addEvent() 函数:http://ejohn.org/projects/flexible-javascript-events/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function addEvent( obj, type, fn ) { 
if ( obj.attachEvent ) {
obj['e'+type+fn] = fn;
obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
obj.attachEvent( 'on'+type, obj[type+fn] );
} else
obj.addEventListener( type, fn, false );
}
function removeEvent( obj, type, fn ) {
if ( obj.detachEvent ) {
obj.detachEvent( 'on'+type, obj[type+fn] );
obj[type+fn] = null;
} else
obj.removeEventListener( type, fn, false );
}

这个函数如此简单易懂,的确非常令人惊讶。那么我们还是要看看上面的五点要求:

对于第一点满足了;

对于第三点和第五点,肯定也满足了;

对于第二点,并没有满足,因为addEventListener()会忽略重复注册,而attachEvent()则不会忽略;

但是第四点,并没有满足,因为Dom标准没有确定调用一个对象的时间处理函数的顺序,所以不应该想当然的认为它们以注册的顺序调用。

但是这个函数仍然是一个非常优秀的函数。

二、Dean Edward 所写的 addEvent() 函数 :http://dean.edwards.name/weblog/2005/10/add-event2/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function addEvent(element, type, handler) {
if (!handler.$$guid) handler.$$guid = addEvent.guid++;
if (!element.events) element.events = {};
var handlers = element.events[type];
if (!handlers) {
handlers = element.events[type] = {};
if (element[&quot;on&quot; + type]) {
handlers[0] = element[&quot;on&quot; + type];
}
}
handlers[handler.$$guid] = handler;
element[&quot;on&quot; + type] = handleEvent;
}

addEvent.guid = 1;

function removeEvent(element, type, handler) {
if (element.events &amp;&amp; element.events[type]) {
delete element.events[type][handler.$$guid];
}
}
function handleEvent(event) {
var returnValue = true;
event = event || fixEvent(window.event);
var handlers = this.events[event.type];
for (var i in handlers) {
this.$$handleEvent = handlers[i];
if (this.$$handleEvent(event) === false) {
returnValue = false;
}
}
return returnValue;
};

function fixEvent(event) {
event.preventDefault = fixEvent.preventDefault;
event.stopPropagation = fixEvent.stopPropagation;
return event;
};
fixEvent.preventDefault = function() {
this.returnValue = false;
};
fixEvent.stopPropagation = function() {
this.cancelBubble = true;
};

该函数使用了传统的绑定方法,所以它可以在所有的浏览器中工作,也不会造成内存泄露。

        但是对于最初提出的5点,该函数只是满足了前四点。只有最后一点没有满足,因为在JavaScript中对for/in语句的执行顺序没有规定是按照赋值的顺序执行,尽管大部分时刻是按照预期的顺序执行,因此在不同的JavaScript版本或实现中这一语句的顺序有可能不同。

三、Dean Edward 的 addEvent() 函数的改进

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Array.prototype.indexOf = function( obj ){
var result = -1 , length = this.length , i=length - 1;
for ( ; i&gt;=0 ; i-- ) {
if ( this[i] == obj ) {
result = i;
break;
}
}
return result;
}
Array.prototype.contains = function( obj ) {
return ( this.indexOf( obj ) &gt;=0 )
}
Array.prototype.append = function( obj , nodup ) {
if ( !(nodup &amp;&amp; this.contains( obj )) ) {
this[this.length] = obj;
}
}
Array.prototype.remove = function( obj ) {
var index = this.indexOf( obj );
if ( !index ) return ;
return this.splice( index , 1);
};
function addEvent(element , type , fun){
if (!element.events) element.events = {};
var handlers = element.events[type];
if (!handlers) {
handlers = element.events[type] = [];
if(element['on' + type]) {
handlers[0] = element['on' + type];
}
}
handlers.append( fun , true)
element['on' + type] = handleEvent;
}
function removeEvent(element , type , fun) {
if (element.events &amp;&amp; element.events[type]) {
element.events[type].remove(fun);
}
}
function handleEvent(event) {
var returnValue = true , i=0;
event = event || fixEvent(window.event);
var handlers = this.events[event.type] , length = handlers.length;
for ( ; i &lt; length ; i++) {
if ( handlers[i].call( this , event) === false ){
returnValue = false;
}
}
return returnValue;
}
function fixEvent(event) {
event.preventDefault = fixEvent.preventDefault;
event.stopPropagation = fixEvent.stopPropagation;
return event;
}
fixEvent.preventDefault = function() {
this.returnValue = false;
};
fixEvent.stopPropagation = function() {
this.cancelBubble = true;
};

该函数是本人对Dean Edward 的 addEvent() 函数的改进,完全满足了最初提出的5点要求。如果大家有更好的方法,期待分享!

转载自:http://www.cnblogs.com/rainman/archive/2009/02/11/1387955.html

由于 16×16像素的画布太小,不便于创建图标,可以先创建一个64×64像素的文档。制作好之后再换成16*16像素的。注意在 windows下查看图片的缩略图的时候,是以48像素大小显示的,所以显示16x16像素的favicon.ico文件时会模糊,这是正常现象,请确保在64x64像素下是正常的便行了。下面是phtoshop的插件:

点击下载photoshop的icon插件

使用方法:

把下载下来的压缩包解压出来,把里面的2个8bi文件都复制到你PHotoshop安装目录下的“\Plug-ins(插件)\File Formats(文件格式)”文件夹下,重新启动一下Photoshop就可以打开ico文件了。挺实用的小插件。

0%