伯伯2008年终总结[ 旅游 | 电影 | 文章 | C# | Javascript | CSS ]
前言
瞅见别人写年终总结我也心痒痒了,想想今年还是收获不少的,下面和大家分享一下吧 : )
---------------------------------------------------------------------------------------------
人物
农民伯伯 老实说我是农村里长大的,到岳阳市的时候就觉得自己很土、很农民,现在到了北京就更加觉得了,尤其是步入高楼大厦时候的感觉;然后女朋友老嫌弃我老- - ,虽然只比她大一个多月,所以名称就这么来了。
---------------------------------------------------------------------------------------------
工作地点
北京 今年是呆在北京的第二年,干燥的天气和杀人的风,还好有暖气。也差不多习惯了吧,从饮食到起居,也习惯了挤公交车...
---------------------------------------------------------------------------------------------
旅游
1. 故宫博物馆 和老妈、小侄子去的,强大、奢侈、精美,拍了好多照片
2. 颐和园 和老妈、小侄子一起去的,很好玩、很大很秀美,老妈说下次还要去。
3. 司马台长城 2天爬了将近10个小时,从金山岭——司马台,没爬到最高峰,天黑了,人也要趴了!!我们趴的这段算是至今保存尚完好的古长城了,八达岭那边好多都是翻新过的了,我们住的那地叫古北口,住的那家大叔不错,饭菜也很可口,收费合理!
---------------------------------------------------------------------------------------------
事件
1. 雪灾 年初的雪灾,湖南岳阳属于受灾比较轻的了,听老妈说只是停了2周水和电,比起湖南其他地方好多了,庆幸加祈福!!
2. 汶川大地震 先默哀!是想说关于捐款的事情,我本来是不打算捐钱的,因为我不认为也不是很信任我捐100到灾民手里能有50!98年湖南洪水大家应该知道吧,那时候发到我们手里的是每人十几块钱加破衣服!!再则报红十字会账目丑闻,甚至现在捐衣服他妈的还要新的(可以去韩寒的新浪博客看),没有去买!!我CAO!!诸如此类的丑闻网上甚多,流传甚广。“将来我一定资助至少一名四川的人读书或者能有个稳定的工作(我一直坚信我将来是个有作为的人)”——像誓言一样的这样跟我女朋友说的。但是我最后还是捐了100,连我妈都说我呢,不明白没关系,我心里清楚,我女朋友心里清楚就行了。
3. 西藏事件 具体事情不了解,但肯定有一点,别看新闻!!
4. 奥运会 这是时候我和我老妈正在北京,不过还是电视机前,很震撼的开幕式!全世界也是如此的感受吧。有一点不得不说,看到很多外国人拿银牌和铜牌一样笑得很灿烂,别忘了运动是来强身啊!不是把人都给练废了!!
5. 三聚氰胺 像这样的事情很多,如果现在有人去查查全国餐馆里面的食用油也同样会举世震惊的!期间我仍然是喝蒙牛的牛奶,我觉得这人要死啊,你不喝他也得死,所以看开点吧,好歹这也是北京嘛。。。不过纸包子事件另当别论了,还是被和谐了。
6. 金融风暴和公司解散 听说过金融风暴,98年的,对这个概念很模糊,以为离自己很远,以为那只是股市的事情。现在能清晰的感觉到绝望和无奈,社会又该更乱了吧。。。
-----------------------------------------------------------------------------------------
公司
1. 中汇(07.10 - 08.4),中介公司,参加旧内网维护和新ERP开发。失败的公司,失败的项目,一直郁闷的活在那里,终于离开了..... 。但是人很好,起码对我很好,
2. 博汉天际(08.4 - 至今),风暴之中经历了一次解散,属于幸存者,走了3/4。这是第二次了......
-----------------------------------------------------------------------------------------
08年看过的电影、连续剧
1. 大陆、香港、台湾
a). 赤壁 场面还不错,赵薇和林志玲的演出感觉比较奇怪,有点搞笑和反感——在这样的历史大片中。其实关羽还行,就是出场的时候小眼睛特别明显,差点笑出来了,那个转身啊!!孙权上场的时候也是一眼就看出来是个“奸人”,也是眼神和表情在出场的时候比较奇怪!!
b). 功夫之王 效果还行,比较扯,和熊猫一样,也是速成功夫 - -
c). 军鸡 名称比较怪异,我觉得还行,有点暴力。
d). 长江七号 老实并用某人说:周星驰适合当演员、不适合当导演!现在还在拿他的《喜剧之王》看呢。
e). 海角七号 开始的时候没有看懂,后来才明白过来,剧情一般,倒是里面的文化含义令人深思,所以大陆不让播么: ) ,最后两首歌和一句话让人感动!
f). 三国之见龙卸甲 别说了,烂片 - -
g). 投名状、集结号 拍得很好,看完之后很悲伤,现实中又何尝不是如此呢,社会是不是非要退步到原始人才能会原始的那份朴实呢?!(虽然是去年年底的片子今年才看)
h). 大国崛起(推荐) 女友介绍,非常好的介绍世界几大强国兴衰过程,历史精华浓缩版!
i). 色戒(推荐 非阉割版) 很震撼,有争议不好评价!李安——大师级,很用心很用心的一部片子。
j). 红高粱、英雄(推荐) 、十面埋伏 张艺谋N多年的片子了,还不错啦~~~
k). 即日起程 不错的小成本制作,剧情和内容以及演技都不错
l). 非诚勿扰 08.12.31 晚看的,而且是排队的时候别人有事要走免费给的电影票!!葛优的演技还是不用怀疑的,确实挺搞笑的,但是感觉影片内容和片名不是很符合。
2. 欧美
a). 史前一万年 还不错,女的眼睛很漂亮的说!!
b). 越狱1、2(推荐) 很赞,看的时候超级急,第一季播完了还没逃出来,我都替他急,呵呵.
c). X战警1、2、3 也很赞,比较过时了,呵呵老片经典!!
d). 异形大战铁血战士2 有小部分情节很恐怖,24屏、高清,呵呵,不错呢就是怕看的: )
e). 功夫熊猫 用我女友的话说,欧美怎么老以为功夫可以速成呢!!?
f). 全民超人 还不错
g). 地心冒险/地心历险记 还行,女友评价比较高,还嚷嚷着要去电影院看3D的呢!!
h). 奇幻精灵薄 还不错的奇幻小说,能给个80分。
i). 魔法奇缘 迪士尼的,觉得女的很做作,虽然也很可爱!
j). 无敌浩克 典型美国片,还行吧~~
k). 后天(推荐) 不错的灾难片,看完之后口渴!要喝水!!珍爱地球呢!
l). 末代皇帝 虽然是将的最后一个中国最后一个皇帝,但是是外国人拍的,该片获第60届(1988年)奥斯卡最佳影片、最佳导演、最佳改编剧本、最佳摄影、最佳美工、最佳服装设计、最佳剪辑、最佳音响效果、最佳原始音乐九项大奖!!老实说很不错!!
m). 勇敢的心 很老的片了,朋友推荐,印象深刻的好片!知道现在脑袋瓜子里面还在响起"Free"的吼声!!
n). 美丽心灵 奥斯卡获奖片,印象最深刻的是那可爱的美丽的妻子,至始至终,这才是真爱呢!!
o). 加勒比海盗3 片子很长,很好看!!然后片头的那段音乐很喜欢,找到了,中文叫《我唯一的爱》
p). 潜水钟与蝴蝶 男主角的坚强是毋庸置疑的,但是我看完之后是羡慕人家的福利条件和作为医生的职业素质。
q). 芳芳 法国爱情片,对爱请不要幻想!强烈推荐给想保持如纯真爱情(只牵牵手、童话式)的恋人看!!
r). 银河系漫游指南 不好评价,但是值得一看: )
3. 日韩
a). 狗狗与我的十个约定 (日)(推荐) 请关心身边的人和动物!!
b). 色即是空2(韩) 烂片,严重抄袭第一部!真没创意!
c). 母亲(日) 很感人,很温柔。
d). 大奥(日) 连续剧,好像看的是大奥第一章,和女友一起看的,讲日本的宫廷剧吧,反正演得蛮好的!
e). SOUL EATER(日 动画) 好看,开始看有点恐怖,但是内容和画面并不恐怖。
f). ToLOVERu(日 动画) 女的超可爱,挺搞笑的,小心鼻血!!
4. 额外推荐(可能是今年、去年、前年,但是以前不写年终总结这玩意(*^__^*) ……)
a). 日本以外全部沉没 看好了,不是《日本沉没》!这部才叫搞笑和经典!多谢好狄推荐!!
b). 阿甘正传 啥都别说,看吧!
c). 蝴蝶效应
d). 倩女幽魂(港版) 张国荣,比较经典!
e). 肖申克的救赎
f). 士兵突击 许三多!呵呵,挺傻根的,连拍的广告都很傻 - - # ,但是很朴实,比较经典了!还有《闯关东》,看了几集,没时间~~
-----------------------------------------------------------------------------------------
书籍
1. 《水浒传》
2. 《设计模式解析》 书很薄,写得也不错,举例很到位,比较通俗。
------------------------------------------------------------------------------------------
我自认为写的有价值的文章
1. ^全^ 获取SQL SERVER2000/2005、MySql、Oracle元数据的SQL语句 [SQL语句来自CodeSmith]
2. 穿越 [ UFO | 泰坦尼克号 | 巫师 | 祭师 | 宗教 | 梦 ]
3. Javascript 滑动效果菜单 TreeView [Javascript]
4. 使用IHttpHandler做权限控制[ASP.NET | IHttpHandler | AjaxPro | UserHostName]
5. 笨笨图片批量下载器 V0.3 beta[C# | WinForm | 正则表达式 | HttpWebRequest | Async异步编程] new
6. C# DLL资源文件打包(图片、JS、CSS)[WebResource]
8. PowerDesigner 12 根据名称生成注释(完整示例)
10. FLASH与ASP.NET通讯[Flash | CS3 | ActionScript | ASP.NET | FluorineFx ]
-----------------------------------------------------------------------------------------
技术总结
我桌面上有一个文件夹,名称叫【编程常用】,里面放了我日常技术笔记:
下面简要的说明下,有些很新手,有些也许能帮到你。
C#
1. 在CallBack之后保持滚动条的位置:
在Asp.Net1.1中,CallBack之后保持滚动条的位置是一件非常痛苦的事情,特别是页中有一个Grid并且想要编辑特定的行。为了不停留在想要得行,页面会重新加载并且必须在顶部向下滚动。在ASP2.0中,只需要简单的在页面的属性中加入MaintainScrollPostionOnPostBack属性即可
<%@ Page Language="C#" MaintainScrollPositionOnPostback="true" AutoEventWireup="true" CodeFile="" Inherits=""%>
2. 匿名委托实现自定义排序
{
articleList.Sort(delegate(Article a, Article b)
{
return (a.CommentCount - b.CommentCount) * (ascending ? 1 : -1);
});
}
3. Readonly是运行时常量,Const是编译时常量;前者灵活,后者高效;前者可以用于任何类型,后者只能用于数字和字符串
4. 获得客户端计算机名称
System.Net.Dns.GetHostEntry(Request.UserHostName).HostName;
5. 常用集合:
CollectionsUtil 创建忽略字符串大小写的集合。
HybridDictionary 在集合较小时,使用 ListDictionary 来实现 IDictionary,然后当集合变大时,切换到 Hashtable。
ListDictionary 使用单链接列表实现 IDictionary。建议用于通常包含 10 个或 10 个以下项的集合。
NameObjectCollectionBase 为关联的 String 键和 Object 值的集合(可通过键或索引来访问它)提供 abstract 基类。
NameObjectCollectionBase.KeysCollection 表示集合的 String 键的集合。
NameValueCollection 表示可通过键或索引访问的关联 String 键和 String 值的集合。
OrderedDictionary 表示根据键/索引排序的键/值对的集合。
StringCollection 表示字符串集合。
StringDictionary 将键和值强类型化为字符串而不是对象来实现哈希表。
6. ListDictionary、Hashtable、HybridDictionary
小数据量: ListDictionary优于Hashtable,10个或10个以下
大数据量: Hashtable优于ListDictionary,10个以上为大
不确定数据量:HybridDictionary,能化的决定你的数据该用ListDictionary存储还是Hashtable存储
以上三个,都属hashtable,那Dictionary与他们有什么不同呢?
Dictionary<>:单线程程序中推荐使用,有泛型优势, 且读取速度较快, 容量利用更充分,有按插入顺序排列数据的特性 (注: 但当调用 Remove() 删除过节点后顺序被打乱), 因此在需要体现顺序的情境中使用 Dictionary 能获得一定方便
Hashtable:默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减
7. volatile 修饰符通常用于由多个线程访问而不使用 lock 语句
8. implicit 关键字用于声明隐式的用户定义类型转换运算符,如A+B
9. as 运算符类似于强制转换操作;但是,如果转换不可行,as 会返回 null 而不是引发异常。注意,as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行。
10. 控件之间传值Item只是HttpContext的一个属性。 HttpContext.Item
也就是说这个属性是针对一次请求而言的,每个用户每次发出的请求都会建立一个HttpContext的实例,所以不存在什么用户共享的问题。
一般,Item只是用于控件开发的时候存储一些共有的值,在下一次请求到来的时候item中的值又会重新建立的.
11. 以下对象是按引用传递:
Hashtable[包括从session里面取出来之后不用再塞回去]
SqlDataReader
StringBuilder
Dictionary<T, T>
12. NameValueCollection用法
NameValueCollection myCol = new NameValueCollection();
myCol.Add( "red", "rojo" );
myCol.Add( "green", "verde" );
myCol.Add( "blue", "azul" );
myCol.Add( "red", "rouge" );
myCol.Add( "red", "bbb");
print: red rojo,rouge,bbb
green verde
blue azul
13. HttpCookie注意事项
cookie.Values.Add 如果key存在,则在该key之上累加 如Add前是010,如果继续对该键值Add 则变成010,010
cookie.Values[key] 该key不存在也可以添加,推荐
14. File.Exists(fileName); 文件是否存在
Directory.Exists(folderName); 目录(文件夹)是否存在
15. 绑定DropDownList绑定之后设置默认值
ddlBranch.Items.FindByText("总公司").Selected = true;
16. 绑定到简单属性:<%#UserName%>
绑定到集合:<asp:ListBox id="ListBox1" datasource='<%# myArray%>' runat="server">
绑定到表达式:<%#(class1.property1.ToString() + "," + class1.property2.ToString())%>
绑定到方法返回值:<%# GetSafestring(str) %>
绑定到Hashtable:<%# ((DictionaryEntry)Container.DataItem).Key%>
绑定到ArrayList:<%#Container.DataItem %>
17. ASP.NET服务器控件
Name用this.UniqueID.ToString()获得
ID用this.ClientID.ToString()获得
18. ASP.NET 执行父控件的方法
Page p = this.Parent.Page;
Type pageType = p.GetType();
MethodInfo mi = pageType.GetMethod("Loading");
string sqlwhere = GetWhere(hsr);
mi.Invoke(p, new object[] { sqlwhere });
19. 服务器端FileUpload上传控件如何禁止手动输入
<asp:FileUpload ID="FileUpload1" runat="server" Height="22px" Width="412px" onkeydown="event.returnValue=false;" onpaste="return false" />
20. 数据连接关闭问题
1.DataReader的关闭:if not dr.isclosed then dr.closed() ,如果不关闭dr,直接关闭cn,那么dr自动关闭.
2.DataSet不存在关闭与否的问题
3.DataTable存在关闭与否的问题,而.net缺省设为,当使用dt.fill(ds)时,它自动打开,填充完后自动关闭
21. 巧妙截取日期dateString.Split(' ')[0]
22. 不要用 + 来连接两个 路径字符串
用Path.Combine( "字符串1 ", "字符串2 ")
比如
Path.Combine(@ "C:\AAA\BBB ", "CCC ") // C:\AAA\BBB\CCC --自动补上一个斜杠
Path.Combine(@ "C:\AAA\BBB\ ",@ "\CCC ") //相同结果,自动去掉一个斜杆
Path.Combine(@ "C:\AAA\BBB ",@ "..\CCC ") //C:\AAA\CCC
-----------------------------------------
Javascript
1. document.referrer可以获得上一页的地址,使用document.anchors获得页面上面所有的链接元素,而不必使用document.getElementsByTagName('A');,同样道理还有document.forms , document.images。
2. function.length --> 参数的定义的个数,如 function aa(a,b,c) --> aa.length = 3
3. arguments [function.]arguments[n ] 正在执行的函数和调用它的函数的参数
// 一个任意数目Integer求和的简单例子
var add = function(){
var sum = 0;
for each (var item in arguments){
sum += item;
}
document.write(sum);
}
//求一个数的阶乘
function factorial(n){
return function(n){
if(n == 1) return 1 ;
else return n * arguments.callee(n-1); //上面的callee引用了匿名的阶乘函数本身。 使用factorial()(8)调用求8的阶乘,返回40320
};
}
需要说明的是arguments并不是一个数组,可用instanceof测试。
alert(arguments instanceof Array) //false
4. apply 方法能劫持另外一个对象的方法, 继承另外一个对象的属性。
alert(Math.max(5,8)) //8
var arr=[5,7,9,1]
alert(Math.max(arr)) // 这样却是不行的。一定要写成循环判断
--> Math.max.apply(null,arr) //可以计算这个数组中的最大值
--> Array.prototype.push.apply(arr1,arr2) //将数组arr2的元素追加到arr1里面去
如 func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])
Person.apply(this,arguments)
同时使用apply的好处是可以直接将当前函数的arguments对象作为apply的第二个参数传入
call 调用一个对象的一个方法,以另一个对象替换当前对象。
5. typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."
6. 上传之后马上看到图片
<input type="file" name="oFile" onchange="document.images.oImg.src=this.value"/>
检测图片文件大小
<img name="oImg" style="position:absolute;top:0;left:0;visibility:hidden"/>
if(document.fileSize)
{alert(parseInt(document.images.oImg.fileSize,10))}
else
{alert("浏览器不支持此功能。")}
清空input file 值
document.getElementById('<%=fuFilesUpload.ClientID%>').outerHTML = document.getElementById('<%
=fuFilesUpload.ClientID%>').outerHTML;
7. js函数
替换 replace("","") -->只能替换首个匹配的 -->改成正则的.replace(/-/g,"/") 就能把所有"-"替换成"/"了
与函数结合:将所有单词首字母换成大写
var strM = "javascript is a good script language";
function change(word)
{
return word.indexOf(0).toUpperCase()+word.substring(1);
}
alert(strM.replace(/\b\w+\b/g,change));
拆分字符串: split("-")
连接字符串: strObj.concat(stringX,stringX,...,stringX) [可用于数组]
是否为有限数字: isFinite(number)
不是数字: isNaN(number) [Not a Number]
字符串加解密: escape()和unescape()
URI加密: encodeURI(URIstring) encodeURI("http://w.p.m?a=中国") -> http://www.w3pop.com?a=%E4%B8%AD%E5%9B%BD
URI解密: decodeURI(URIstring)
parseFloat(string) 返回由字符串转换得到的浮点数。
parseFloat 方法返回与 numString 中保存的数相等的数字表示。
如果 numString 的前缀不能解释为浮点数,则返回 NaN (而不是数字)。
parseFloat("abc") // 返回 NaN。 parseFloat("1.2abc") // 返回 1.2。
parseInt(string, radix) 将一个字符串转换为整型数字 其他同上
radix:进制 2 to 36 16进制 10进制 parseFloat("1.2abc") // 返回 1。
---转换方面---
Number(object) 转换为数字
String(object) 转换为字符串
strObj.toLowerCase() 小写字符串
strObj.toUpperCase() 大写字符串
---查找截取字符串方面---
strObj.indexOf(searchvalue,fromindex) 返回指定值在字符串中第一次出现的位置,如果没有找到子字符串,则返回 -1。fromindex可选的整数参数。规定在字符串中 开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
strObj.lastIndexOf() 返回字符串中最后个出现指定字符串的位置,搜索方向是向后的。
strObj.match(searchvalue) 从字符串中查找指定的值,找到则返回指定值,找不到返回null
strObj.search(searchstring) 从字符串中寻找指定值的位置,找到返回在字符串中的位置,找不到返回-1 [search("aa")|search(/aa/)]
模糊匹配加i [search(/aa/i)] "/xxx/" ->正则表达式模式
strObj.slice(start,end) 从一个字符串选取一部分字符,并将它们返回成一个新的字符串
可以用一个负的起始值从字符串的末尾开始选取字符
strObj.substr(start,length) 从字符串中从指定的起始位置选取指定长度的一段字符
strObj.substring(start,stop) 特定位置间的字符
strObj.slice(start,end) 将部分字符抽出并在新的字符串中返回剩余部分
---样式方面---
strObj.sup() 上标字符串 比如平方
strObj.sub() 字符串显示成下标
strObj.small() 显示小一号的字符串
strObj.big() 显示大一号的字符串
strObj.strike() 字符串以删除的形式显示
strObj.blink() 显示闪烁的字符串 Firefox,Netscape
strObj.bold() 显示粗体字符串
strObj.fontcolor(color) 指定的颜色显示字符串
strObj.fontsize(size) 指定的字体大小显示字符串
strObj.italics() 用斜体显示字符串
strObj.link() 字符串以超级链接的形式显示
---
系统函数
新开以窗口: window.open("/page/Zulin/TZ/JGD_CHULI.aspx");
后退: window.history.go(-1);
关闭窗口: window.close()
确认对话框: if(window.confirm("你确定么?")){}else{}
带输入的对话框: window.prompt("请输入您的名字",""); 方法返回值即输入的值
剪切板: window.clipboardData.setData("Text",url);
自动调用方法1: window.setTimeout(vCode, milliseconds) 执行1次 1000毫秒为一秒
清除自动调用: clearTimeout(vCode)
自动调用方法2: window.setInterval(vCode, iMilliSeconds [, sLanguage]) 每隔iMilliSeconds就执行一次vCod
清除自动调用: clearInterval(vCode)
---
window.location.reload() 刷新
location.hash 设置或获取 href 属性中在井号“#”后面的分段。
location.host 设置或获取 location 或 URL 的 hostname 和 port 号码。
location.hostname 设置或获取 location 或 URL 的主机名称部分。
location.href 设置或获取整个 URL 为字符串。
location.pathname 设置或获取对象指定的文件名或路径。
location.port 设置或获取与 URL 关联的端口号码。
location.protocol 设置或获取 URL 的协议部分。
location.search 设置或获取 href 属性中跟在问号后面的部分。
window.external.AddFavorite(location.href, document.title) 加入收藏
window.external.ImportExportFavorites(true,) 导入收藏夹
window.external.ImportExportFavorites(false,) 导出收藏
window.external.ShowBrowserUI(OrganizeFavorites, null) 整理收藏夹
window.location = "view-source:" + window.location.href 查看原文件
window.external.ShowBrowserUI(LanguageDialog, null) 语言设置
window.onbeforeunload 事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。
触发于:
* 关闭浏览器窗口
* 通过地址栏或收藏夹前往其他页面的时候
* 点击返回,前进,刷新,主页其中一个的时候
* 点击 一个前往其他页面的url连接的时候
* 调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.
* 当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。
* 重新赋予location.href的值的时候。
* 通过input type=”submit”按钮提交一个具有指定action的表单的时候。
window.onbeforeunload="javascript:void";
8. js事件
onkeypress 在用户按下并放开任何字母数字键时发生。系统按钮(例如,箭头键和功能键)无法得到识别。[响应一个键]
onkeyup 在用户放开任何先前按下的键盘键时发生。
onkeydown 在用户按下任何键盘键(包括系统按钮,如箭头键和功能键)时发生。[响应几个键的组合]
可以响应Ctrl、Alt、Shift等功能键和键的组合,而onkeypress不能
onfocusout 失去光标事件
onfocus 获得光标事件
onabort 图片下载被打断时
onblur 元素失去焦点时
ondblclick 鼠标双击
onerror 加载文档或图片发生错误时
onmousedown 鼠标被按下时
onmousemove 鼠标被移动时
onmouseout 鼠标离开元素时
onmouseover 鼠标经过元素时
onmouseup 释放鼠标按键时
onunload 用户离开页面时
9. JS Math对象
Math.round(x) 四舍五入后取整
Math.random() 返回一个0与1之间的随机数字
Math.max(x,y) 返回 x 和 y 之间较大的数
Math.min(x,y) 返回 x 和 y 之间较小的数
Math.floor(x) 返回 x 四舍五入后的最小整数
Math.ceil(x) 返回 x 四舍五入后的最大整数
Math.abs(x) 返回数字的绝对值
Math.pow(x,y) 返回 y^x 的值
10. scrollHeight: 获取对象的滚动高度。
scrollLeft: 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop: 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth: 获取对象的滚动宽度
offsetHeight: 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft: 获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop: 获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
网页正文部分上:window.screenTop
网页正文部分左:window.screenLeft;
屏幕分辨率的高:window.screen.height;
屏幕分辨率的宽:window.screen.width;
屏幕可用工作区高度: window.screen.availHeight;
屏幕可用工作区宽度: window.screen.availWidth;
你的屏幕设置是 window.screen.colorDepth +" 位彩色";
你的屏幕设置 window.screen.deviceXDPI +" 像素/英寸";
11. js 循环
for(... in ...)语句
var mycars = new Array();
mycars[0] = "法拉力";mycars[1] = "保时捷";mycars[2] = "宝马;
for (x in mycars) { document.write(mycars[x] + "<br />"); }
while(bool){ ; } 语句
do{ ; } while (bool) 语句
---------
switch(key){ case 1: code;break;default:}
12. js 错误
try{ //throw "err1" }catch(err){ err.description } 这里能catch到throw 并且err就等于"err1"
13. js with语句 为语句设定默认对象。
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10) y = Math.tan(14 * Math.E)
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
with (Math){ x = cos(3 * PI) + sin (LN10) y = tan(14 * E)}
14. 禁用粘贴和拖拽到文本框
onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false"
15. 子窗体刷新父窗体
window.opener.location.reload();
<script>alert('→欢迎您订购成功!');window.opener.document.mlogon.reset();</script>
mlogon是父窗体的按钮
16. 屏蔽输入法
<input type="text" name="url" style="ime-mode:disabled" onkeydown="if(event.keyCode==13)event.keyCode=9">
17. javascript来手动触发onchange事件
<form name="form1">
<select name="test" onchange="document.form1.text1.value=this.options[this.selectedIndex].value">
<option value="1" selected>测试一</option>
<option value="2">测试二</option>
<option value="3">测试三</option>
</select>
<input type="text" name="text1" id="text1">
</form>
<script>
document.form1.test.fireEvent('onchange');
</script>
18. javascript数组用法
var xpos=new Array()
for (i=0;i<=message.length-1;i++) {
xpos[i]=-50}
var ypos=new Array() 湖北省
for (i=0;i<=message.length-1;i++) {
ypos[i]=-50}
(1).var myArray = new Array();或 var myArray = [];
(2).var myArray = new Array("red","green","blue");或 var myArray = ["red","green","blue"];
(3).var myArray = new Array(3);或 var myArray = [,,];
删除一个数组元素,可以用delete的运算符,例如:delete myArray[1];。
.length还有一个很好的用途,就是删除元素,比如一个有很多元素的数组,用户想删除所有的元素,可以用length操作,很简单快捷,比如:myArray.length = 0;。
strArr.shift() 删除并返回数组中第一个元素值
strArr.unshift(item1[,item2[,...]]) 为数组的开始部分加上一个或多个元素,并且返回该数组的新长度
strArr.slice(start,end) 从现有数组中的某个元素开始依次返回
strArr.splice(index,howmany,element1,.....,elementX)方法用于插入、删除或替换数组的元素
index: 必选项。指定在哪个位置加入/删除元素,必须是数字
howmany: 必选项。指定有多少元素应该被删除。必须是数字,可以是"0"
element1 可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。
elementX 可选。可向数组添加若干元素。
strArr.sort(sortby) sortby:可选 必须为一个函数 function sortByNumber(a,b){return a - b;} [数组本身会改变]
strArr.concat(arrayX,...,arrayX) 将两个或多个数组结合 [返回新的数组]
strArr.join(separator) 将数组中的所有元素合并起来成为一条字符串。每个元素可以指定他们的分隔标记。
strArr.shift() 删除并返回数组中第一个元素值 [数组本身会改变]
strArr.pop() 删除并返回数组最后的元素 [数组本身会改变]
strArr.push(newelement1,newelement2,....,newelementX) 可向数组的末尾添加一个或多个元素,并返回新的长度。[数组本身会改变]
strArr.reverse() 数组倒序
19. 文本框只能输入数字,比较完美,但是(.1)、(.001)能这样输入
onKeyPress="return event.keyCode>=48&&event.keyCode<=57||(this.value.indexOf('.')<0?event.keyCode==46:false)"
20. 如果将select的属性disabled 设置为false了,提交的时候服务器端将获得不了值
var sn_list = document.getElementById("ShopName");
var op = new Option("请选择店名","");
op.selected = true;
sn_list.add(op);
是不是所有表单元素设置disabled 设置为false之后服务器都获取不到?待验证。。
21. 替换字符串 .replace(new RegExp(",","gm")," ")
22. 简单的防止表单重复提交
<script language="javascript">
<!--
var IsRepeatSubmit=false;
//检测是否重复提交表单
function CheckIsRepeatSubmit()
{
if (IsRepeatSubmit==true){
alert("正在上传图片,请稍后!!");
return false;
}
IsRepeatSubmit=true;
return true;
}
//-->
</script>
23. 关闭自动完成 autocomplete="off"
24. js 对象
popObj=new Object()
popObj.name="POP"
popObj.addr="www.w3pop.com"
popObj.tip="欢迎你"
document.write(popObj.name + popObj.tip) -->POP欢迎你
---
function mypop(name,addr,tip)
{
this.name=name
this.addr=addr
this.tip=tip
}
newpop=new mypop("POP","www.w3pop.com","欢迎你")
document.write(newpop.name + newpop.tip) -->POP欢迎你
25. js特殊字符
\' 单引号
\" 双引号
\& &符号
\\ 反斜杠
\n 换行符
\r 回车符
\t 制表符
\b 退格符
\f 分页符
26. window.open 窗口特征
channelmode=yes|no|1|0 是否使用剧院模式显示窗口。默认为 no。
directories=yes|no|1|0 是否添加目录按钮。默认为 yes。
fullscreen=yes|no|1|0 是否使用全屏模式显示浏览器。默认是 no。处于全屏模式的窗口必须同时处于剧院模式。
height=pixels 窗口文档显示区的高度。以像素计。
left=pixels 窗口的 x 坐标。以像素计。
location=yes|no|1|0 是否显示地址字段。默认是 yes。
menubar=yes|no|1|0 是否显示菜单栏。默认是 yes。
resizable=yes|no|1|0 窗口是否可调节尺寸。默认是 yes。
scrollbars=yes|no|1|0 是否显示滚动条。默认是 yes。
status=yes|no|1|0 是否添加状态栏。默认是 yes。
titlebar=yes|no|1|0 是否显示标题栏。默认是 yes。
toolbar=yes|no|1|0 是否显示浏览器的工具栏。默认是 yes。
top=pixels 窗口的 y 坐标。
width=pixels 窗口的文档显示区的宽度。以像素计。
27. event.altKey 当alt键按下时,值为 TRUE ,否则为 FALSE 。只读
event.ctrlKey 当ctrl键按下时,值为 TRUE ,否则为 FALSE 。只读
event.shiftKey 当shift键按下时,值为 TRUE ,否则为 FALSE 。只读。
event.button 这个属性仅用于onmousedown, onmouseup, 和 onmousemove 事件。检测键盘事件相对应的内码。
0 没按键
1 按左键
2 按右键
3 按左右键
4 按中间键
5 按左键和中间键
6 按右键和中间键
7 按所有的键
对其他事件,不管鼠标状态如何,都返回 0(比如onclick)。
event.keyCode 这个属性用于 onkeydown, onkeyup, 和 onkeypress 事件。
可读写的值,可以是任何一个Unicode键盘内码。如果没有引发键盘事件,则该值为 0 。
event.clientX 返回鼠标在窗口客户区域中的X坐标,只读属性。
event.clientY 返回鼠标在窗口客户区域中的Y坐标,只读属性。
event.offsetX 检查相对于触发事件的对象,鼠标位置的水平坐标
event.offsetY 检查相对于触发事件的对象,鼠标位置的垂直坐标
event.screenX 检测鼠标相对于用户屏幕的水平位置,只读属性
event.screenY 检测鼠标相对于用户屏幕的垂直位置,只读属性
event.x 返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。
如果事件触发后,鼠标移出窗口外,则返回的值为 -1,只读属性。
event.y 同上相反
event.srcElement 返回触发事件的元素,只读。
event.fromElement 检测 onmouseover 和 onmouseout 事件发生时,鼠标所离开的元素。只读属性。
event.toElement 检测 onmouseover 和 onmouseout 事件发生时,鼠标所进入的元素。只读属性。
event.returnValue[ = Boolean] 设置或检查从事件中返回的值,true 事件中的值被返回,false 源对象上事件的默认操作被取消
event.type 返回事件名。返回没有“on”作为前缀的事件名,比如,onclick事件返回的type是click,只读。
-----------------------------------------
CSS
1. 解决密码框和文本框长度不一致的问题
用style来控制长度,如下:
<input type="text" name="test" style="width:100px" />
<input type="password" name="test2" style="width:100px" />
2. 文本框内居中
<input type=text style="TEXT-ALIGN: center">
3. <link rel="stylesheet" href="sheet1.css" type="text/css" media="all" title="default" />这应该是一个很标准的格式了,LINK标签的最基本的作用是允许制作者在一个文档中链接其它的文档。而在这儿的作用是为当前的文档链接一个外部样式表。
rel是关联的意思,表示链接的类型为一个样式表(stylesheet);
href显示了当前载入的样式表文件名(或包括路径);
type则始终取值text/css,这个值描述了link标签载入的数据类型。
media属性我知道的取值有3个:all,print,screen。其中,print取值表示当前链接的样式表仅用于页面在打印的时候生效;screen则表示当前链接的样式表仅用于页面在屏幕上(不知道有没有PC和非PC屏幕之分?)显示生效;而all则表示当前链接的样式表用于所有(print/screen/?)。
利用media的属性,可以很好地控制你的文档在被打印时的样式,比如说不需要背景色,不需要图案/图片之类的效果,甚至可以实现只打印主体部份的内容。
4. 在css里导入别的css 文件 @import url("/css/global.css");
5. overflow : visible | auto | hidden | scroll
参数:
visible : 不剪切内容也不添加滚动条。假如显式声明此默认值,对象将被剪切为包含对象的window或frame的大小。并且clip属性设置将失效
auto : 此为body对象和textarea的默认值。在需要时剪切内容并添加滚动条
hidden : 不显示超过对象尺寸的内容
scroll : 总是显示滚动条
说明:
检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。
设置textarea对象为hidden值将隐藏其滚动条。
对于table来说,假如table-layout属性设置为fixed,则td对象支持带有默认值为hidden的overflow属性。如果设为hidden,scroll或者auto,那么超出td尺寸的内容将被剪切。如果设为visible,将导致额外的文本溢出到右边或左边(视direction属性设置而定)的单元格。
自IE5开始,此属性在MAC平台上可用。
对应的脚本特性为overflow。请参阅我编写的其他书目。
6. 是否重复的平铺背景图
background-repeat:no-repeat
Attachment”选项是问你图像位置是否固定,设置“Fixed”,表示固定。
“Horizontal”是水平位置,这里选“right”表示居右。
“Vertical”是垂直位置,这里选择“bottom”,表示靠底。
7. cursor: pointer;或者cursor:hand;前者ie和ff都认,后者ff不认。
8. 超链接
<style type="text/css">
/*a:hover 链接未被访问时显示的颜色*/
a:link {
color: #0368AE;
font-size: 9pt;
text-decoration: none;
}
/*a:hover 鼠标悬停时的样式*/
a:hover {
color: #9393FF;
font-size: 9pt;
text-decoration: none;
}
/*a:visited 链接被访问之后显示的颜色*/
a:visited {
color: #9393FF;
font-size: 9pt;
text-decoration: none;
}
/*a:active 链接被点击与释放之间发生的*/
a:active {
color: #0368AE;
font-size: 9pt;
text-decoration: none;
}
</style>
------------------------------------------------------------------------------------------
结束
上面所有排名都不分先后,纯属于想起什么写什么,尤其是电影那里!其实收获还远不止如此,但是这些都看得到的,其他如把老妈接到北京玩了1个月,拍了100张照片带回家也是一件让人骄傲的事情呢,所以有快乐一定尽可能的让身边的人一起分享。女朋友给了我莫大的鼓舞,在我骄傲的时候给我泼冷水,犀利的指出我问题所在;我悲伤的时候多方位的安慰我,很诚恳的谢谢。同时也感谢博客园,这里我成长很多!!