2007年4月20日星期五

JS取得问号?后的变量

JS取得问号?后的变量
<script>function QueryString(item){var sValue=location.search.match(new RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i"))return sValue?sValue[1]:sValue}
alert(QueryString("groupname"))alert(QueryString("id"))alert(QueryString("lp"))alert(QueryString("DaysPrune"))</script>

直接用 QueryString(argName) 这个函数来获取传递的参数就行了,location.search是获取?后面的整个字符串,利用JS正则表达式分析这个字符串并获取想要的结果.

2007年4月19日星期四

下雨

北京的天是干燥的,很少有下雨的时候,刚搬走不久有东西还落在朋友那里,
下午来的时候她拿了把伞告诉我,要下雨了,所以帮我拿来了,我有说不出的感动。

下雨的季节是属于我的季节,喜欢窝在被窝里听雨的声音,开开窗户伸手触摸
小雨的感觉,撑把伞走在大街上,或者任凭雨淋下,听着自己伤心的音乐,站在
青春的尾巴上,回头望,雨下的更大了

C# 自动填表 & 关于WebBrowser submit

公司上网首先需要安全认证,我嫌每次输入用户名、密码太麻烦,而我又使用IE7、Maxthon、firefox2等多种浏览器,所以决定自己写个自动填表的小程序让它开机运行。
用C#写这个东东非常简单,只需要用一个WebBrowser控件打开要自动填表的网页,然后找到特定的页面成员,赋值和触发事件就ok了。
首先分析目标页面:
《form name="LoginForm" method="get" action="http://10.245.×.×/login" onsubmit="'return">
《table width="253" border="0" cellspacing="0" cellpadding="0">
《tbody>《tr>
《td colspan="2">《img src="http://www2.blogger.com/image/login/login.gif" width="227" height="45" />《/td>
《/tr>
《tr>
《td colspan="2">
《table width="100%" border="0" cellspacing="0" cellpadding="0">
《tbody>《tr>
《td colspan="3">《/td>
《/tr>
《tr>
《td width="26">《img src="http://www2.blogger.com/image/login/useraccount.gif" width="21" height="25" />《/td>
《td>用户账号《/td>
《td width="158">《input type="text" name="username" size="20" maxlength="66">
《/td>
《/tr>
《tr>
《td width="26">《img src="http://www2.blogger.com/image/login/password.gif" width="21" height="25" />《/td>
《td>用户密码《/td>
《td width="158">《input name="password" type="password" id="password" size="20" maxlength="23">
《/td>
《/tr>
《input type="hidden" name="RecordPassword" value="on">
《input type="hidden" name="authmode" value="CHAP">
《input type="hidden" name="websuserip" value="10.245.113.32">
《input type="hidden" name="challenge" size="50" value="dhefbmmihpnfgmei">
《input type="hidden" name="submittime" value="0">
《/table>
《/td>
《/tr>
《tr>
《td height="17">《div align="center">
《input name="clear" type="button" value="清 除" onmouseout="this.style.backgroundColor='#D6EFFF'" onmouseover="this.style.backgroundColor='#94D8FF'" onclick="'return">《/div>《/td>
《td height="27">《div align="center">

《input name="submit" type="submit" height="27" value="登 录" onmouseout="this.style.backgroundColor='#D6EFFF'" onmouseover="this.style.backgroundColor='#94D8FF'">《/div>《/td>
《/tr>
《/table>
《/form>

可以知道,要做的就是给input成员username和password赋值,然后触发form的submit事件就可以。
不过,我在触发submit时遇到了一些问题,因为submit不是C#提供的常用的已注册事件,所以不能够通过RaiseEvent直接调用。
上穷碧落下黄泉,最后还是在一个国内的网站上找到了答案,可以通过AttachEventHandler("submit",new EventHandler(fun))给form添加事件处理函数fun,然后在fun中用InvokeMember方法调用页面中的响应函数,不过这样可能就不能submit页面到form的action定义的url了(偶没试)。
所以,用了改网站上提供的另外一种方法--使用InvokeMember调用input按钮submit的click事件,也可以达到触发form的submit的目的,虽然比较曲折,不过代码反而更简洁。
最后的C#代码如下:
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://10.245.*.*/"); //打开目标URL
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{ //webBrowser完成页面加载:
if (webBrowser1.Url.ToString() == "http://10.245.*.*/") //submit后还会加载一次,而所加载的页面“注销”按钮的name也是submit,汗,所以这要判断下
{
HtmlDocument doc = webBrowser1.Document; //获取document对象
HtmlElement btn = null;
foreach (HtmlElement em in doc.All) //轮循
{
string str = em.Name;

if ((str == "username") || (str == "password") || (str == "submit")) //减少处理
{
switch (str)
{
case "username": em.SetAttribute("value", "****"); break; //赋用户名
case "password": em.SetAttribute("value", "****"); break; //赋密码
case "submit": btn = em; break; //获取submit按钮
default: break;
}
}
}

btn.InvokeMember("click"); //触发submit事件
//doc.Forms["LoginForm"].InvokeMember("submit");
}
else //成功登陆后关闭
{
this.Close();
}
}

你知道这个绚丽的图片是什么吗?

Google 在线服务大全[62个更新中]

实用工具类
Gmail 邮件服务
Spreadsheets 电子表格处理软件
Writely 字处理软件
Blogger 博客空间
Blogger Beta 升级的博客空间
Measure Map 博客分析工具
Page Creator 在线网站设计工具
Reader 在线RSS阅读工具
Orkut 朋友圈
Joga 足球爱好者社区
Groups Google论坛
AdSense
赚钱的工具,发布google提供的广告
AdWords 通过google发布自己的广告
Analytics 强大的网站分析工具
bookmarks
在线的书签存储和管理
Web Albums
网路相册
Answers
需要付费的提问服务
Translate 翻译
Related
Links
能提供与你站点内容相关的信息
Co-op
Blog Ping 将你的blog提交给googleblog
search官方博客
Googleplex; 展示google的视频播客
谷歌黑板报 Google中国公司的博客站
Googleblog Google公司的博客站[英文]
Labs; 创意变成产品
Code 所有产品、服务开发相关的信息移动设备
PDA 移动设备上访问google
Gmail 手机上用收发邮件
Reader:移动设备上访问Reader:www.google.com/reader/m
Mobile 移动搜索
Short Message Service(SMS)
短信发送地图类
Maps 地图与卫星图浏览
Ride Finder
交通状况
Transit 旅行路线计划
Moon 月球图片
Mars 火星图片
资讯类
News 新闻
Finance 财经资讯站
Alerts 网络新闻定制服务
Google Nesletter
提供给粉丝们的快报搜索类
网页搜索 网页搜索[谷歌]
搜索特色
Google搜索的特色介绍
Trends
搜索趋势[中国]
Bendi 本地搜索商户
Bendi商户中心
添加自己的公司到本地搜索
大学搜索大学搜索[中国]
学术搜索 学术文章搜索[中国]
Press Center:
Zeitgeist
搜索趋势[英文]
Images 图片搜索
Notebook Search
搜索Notebook
Directory
Google索引目录
Stopbadware
反流氓软件组织,通过Google搜索访问流氓软件会看到google的警告!其他
Store Google商店
Romance 浪漫之
Imagelabeler
借以提高图像搜索的小游戏
WiFi
Google无线网络服务
Checkout
Google在线支付平台
Google.org Google的慈善机构
Gapminder
世界经济变化
Logo类
Holiday Logos
Fan
Logos

Official Logos

埃及怪胡子先生





在埃及有一个"独特胡子俱乐部",148名成员都留着长长的、造型奇特的胡子。图片为该俱乐部主任法特希·艾哈迈德·马哈茂德和他有趣的胡子。因为他们走到哪都很受欢迎,据说他们的胡子还起到了解决社会矛盾、调解居民不和、化解部族冲突的作用

挂msn也可以赚钱 领奖品 新鲜啊~~~

http://www.5sai.com/r.do?r=130339 有用msn的么 今天发现一个挂msn也可以赢取奖品的网站 呵呵 反正每天都挂着 注册下把msn的签名改成他们的广告就可以了 有兴趣的人可以看看 没有兴趣的人当个笑话 别k我