﻿
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>好易阁&#124;免费杀毒软件&#124;Web技术 &#187; WEB前端应用</title>
	<atom:link href="http://www.helloyi.cn/index.php/category/ued/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.helloyi.cn</link>
	<description></description>
	<lastBuildDate>Fri, 20 Aug 2010 11:00:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>10 款网页设计师必知的免费 Android 应用</title>
		<link>http://www.helloyi.cn/index.php/2010/08/20/10-android-app-web-designer/</link>
		<comments>http://www.helloyi.cn/index.php/2010/08/20/10-android-app-web-designer/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 11:00:00 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=3285</guid>
		<description><![CDATA[近几年苹果的 iPhone 一直占据主导地位，Google Android 系统貌似一直受它的阴影所茏罩。然而，这仅仅是因为 iPhone 发布时间比 Android 手机要早。不过，Android 越来越受欢迎（增长速度相当惊人），应用程序数量也上了一个台阶. 现在为大家介绍 10 款网页设计师必需知道的 Android 应用，以方便他们在找不到电脑的情况下进行生产，当然特指使用 Android 手机的网页设计师。
1.AndFTP

 
是否需要在 Android  手机上访问您的 WEB 服务器呢？AndFTP 是一款 JAVA 应用程序，可通过手机连接 web 服务器。支持 FTP, SFTP 及 FTPS。使用 AndFTP 可上传及下载文件，支持重命名、删除、创建文件/文件夹等命令，界面友好，易于操作。该应用免费。
2. SilverEdit

 
一款轻量级的源代码编辑程序，它能编写 HTML, CSS, PHP 文件并保存到手机或发送到您的邮箱帐户。配合上文提及的 AndFTP，您可以使用 Android 手机建立并上传网站！目前在某些 Android 手机上仍然有一些问题，不过一直在修复（开发中的 3 版比较稳定）。
3. Photoshop

Adobe 把日益流行的 Photoshop 带到了 Android 平台。但不幸的是，我们可以预料到，和台式机相比，它具有有限的功能。不过包含了基本的图像处理功能，如裁剪、旋转、调整颜色等。并且用户可使用免费的 photoshop.com 帐户上传和分享照片。
4. View Web Source
如果你正在浏览一个移动网站，想学习该网站的一些内容，View Web [...]]]></description>
			<content:encoded><![CDATA[<p>近几年苹果的 iPhone 一直占据主导地位，Google Android 系统貌似一直受它的阴影所茏罩。然而，这仅仅是因为 iPhone 发布时间比 Android 手机要早。不过，Android 越来越受欢迎（增长速度相当惊人），应用程序数量也上了一个台阶. 现在为大家介绍 10 款网页设计师必需知道的 Android 应用，以方便他们在找不到电脑的情况下进行生产，当然特指使用 Android 手机的网页设计师。<br />
<span id="more-3285"></span>1.<a href="http://anzhiba.com/andftp-download/" target="_blank">AndFTP</a></p>
<p><img title="178ef7b1-597e-313b-8a51-87a4605a2b6f" src="http://www.helloyi.cn/index.php?feedimage=wp-content/uploads/2010/08/178ef7b1-597e-313b-8a51-87a4605a2b6f.jpg" alt="178ef7b1-597e-313b-8a51-87a4605a2b6f" width="550" height="202" /><br />
 <br />
是否需要在 Android  手机上访问您的 WEB 服务器呢？AndFTP 是一款 JAVA 应用程序，可通过手机连接 web 服务器。支持 FTP, SFTP 及 FTPS。使用 AndFTP 可上传及下载文件，支持重命名、删除、创建文件/文件夹等命令，界面友好，易于操作。该应用免费。</p>
<p>2.<a href="http://anzhiba.com/silveredit-download/" target="_blank"> SilverEdit</a></p>
<p><img class="alignnone size-full wp-image-3287" title="664a2824-c47b-3be7-b5d9-bdca325a045a" src="http://www.helloyi.cn/index.php?feedimage=wp-content/uploads/2010/08/664a2824-c47b-3be7-b5d9-bdca325a045a.jpg" alt="664a2824-c47b-3be7-b5d9-bdca325a045a" width="550" height="405" /></p>
<div style="TEXT-ALIGN: center"> </div>
<p>一款轻量级的源代码编辑程序，它能编写 HTML, CSS, PHP 文件并保存到手机或发送到您的邮箱帐户。配合上文提及的 AndFTP，您可以使用 Android 手机建立并上传网站！目前在某些 Android 手机上仍然有一些问题，不过一直在修复（开发中的 3 版比较稳定）。</p>
<p>3. Photoshop</p>
<p><img class="alignnone size-full wp-image-3288" title="bbea92e5-d615-3930-9cb0-522a608a6583" src="http://www.helloyi.cn/index.php?feedimage=wp-content/uploads/2010/08/bbea92e5-d615-3930-9cb0-522a608a6583.jpg" alt="bbea92e5-d615-3930-9cb0-522a608a6583" width="550" height="271" /></p>
<p>Adobe 把日益流行的 Photoshop 带到了 Android 平台。但不幸的是，我们可以预料到，和台式机相比，它具有有限的功能。不过包含了基本的图像处理功能，如裁剪、旋转、调整颜色等。并且用户可使用免费的 photoshop.com 帐户上传和分享照片。</p>
<p>4. View Web Source</p>
<p>如果你正在浏览一个移动网站，想学习该网站的一些内容，View Web Source 能查看并下载该网站的源代码到它的文本编辑器。同时支持编辑和操作代码，评论并保存到您的手机（或发送到您的 email 帐户）。</p>
<p>5. Mobile GA</p>
<p>最靠谱的统计分析 —— Google Analytics 发有 Android 应用了。 Google Analytics 是最好的网站免费统计分析服务。Mobile GA (Google Analytics) 使用无需通过第三方，直接使用 Google Analytics API 传递数据，以维护您的隐私及数据安全。</p>
<p>6. Dropbox<br />
一款适用于网页设计师及其他创作者的流行应用， Dropbox 是基于云的文件备份工具，可以让你使用 Android 手机访问存储在 Dropbox 的远程文件夹。只需要在一台电脑上保存了文件，就能在其他电脑或手机上远程访问。该应用可访问您的 Dropbox 帐户。需要在多台电脑或设备上共享文件或文档的话，该应用是相当方便的。</p>
<p>7. <a href="http://www.helloyi.cn/index.php/tag/wordpressplugins/" class="st_tag internal_tag" rel="tag nofollow" title="标签 wordpress 下的日志">WordPress</a> Mobile<br />
如果您的博客使用 <a href="http://www.helloyi.cn/index.php/tag/wordpressplugins/" class="st_tag internal_tag" rel="tag nofollow" title="标签 wordpress 下的日志">WordPress</a> 架设的话，通过该应用可以发布新文章、编辑内容、管理评论等。该应用开源而且免费。</p>
<p>8. Thinking Space</p>
<div style="TEXT-ALIGN: center">作为一个网页设计者，你不能丢失创造力，而且不论身处何地你总是酝酿站点设计创意。 Thinking Space 是一款记录你想法的 Android 程序。它能上传你的数据到 Google App Engine。</div>
<div style="TEXT-ALIGN: center">9. Typography Junkies</div>
<div style="TEXT-ALIGN: center">每一个设计师都有一个好的排版灵感，网页排版在设计中也显得异常重要。使用 Typography Junkies for Android 应用，你能能过视频、图片、社会化媒体等获取最新的字体新闻。</div>
<p>10. HTML Test</p>
<div style="TEXT-ALIGN: center">需要复习 HTML 功课么？HTML Test 是一款优秀的 Android 应用，可以让您轻松的复习 HTML。该应用以选择题的形式测试您的 HTML 知识，当然您需要在规定时间内做完。</div>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2010/08/20/10-android-app-web-designer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>100+ javascript技巧集合</title>
		<link>http://www.helloyi.cn/index.php/2010/03/02/100-javascript/</link>
		<comments>http://www.helloyi.cn/index.php/2010/03/02/100-javascript/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 05:33:42 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=3145</guid>
		<description><![CDATA[每一项都是js中的小技巧，但十分的实用！
1.document.write(&#8221;"); 输出语句
2.JS中的注释为//
3.传统的HTML文档顺序是:document-&#62;html-&#62;(head,body)
4.一个浏览器窗口中的DOM顺序是:window-&#62;(navigator,screen,history,location,document)
5.得到表单中元素的名称和值:document.getElementById(&#8221;表单中元素的ID号&#8221;).name(或value)
6.一个小写转大写的JS: document.getElementById(&#8221;output&#8221;).value = document.getElementById(&#8221;i
nput&#8221;).value.toUpperCase();
7.JS中的值类型:String,Number,Boolean,Null,Object,Function
8.JS中的字符型转换成数值型:parseInt(),parseFloat()
9.JS中的数字转换成字符型:(&#8221;"+变量)
10.JS中的取字符串长度是:(length)
11.JS中的字符与字符相连接使用+号.
12.JS中的比较操作符有:==等于,!=不等于,&#62;,&#62;=,&#60;.&#60;=
13.JS中声明变量使用:var来进行声明
14.JS中的判断语句结构:if(condition){}else{}
15.JS中的循环结构:for([initial e­xpression];[condition];[upadte e­xpression]) {inside loop}
16.循环中止的命令是:break
17.JS中的函数定义:function functionName([parameter],&#8230;)
18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替.
19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self
20.状态栏的设置:window.status=&#8221;字符&#8221;;
21.弹出提示信息:window.alert(&#8221;字符&#8221;);
22.弹出确认框:window.confirm();
23.弹出输入提示框:window.prompt();
24.指定当前显示链接的位置:window.location.href=&#8221;URL&#8221;
25.取出窗体中的所有表单的数量:document.forms.length
26.关闭文档的输出流:document.close();
27.字符串追加连接符:+=
28.创建一个文档元素:document.createElement(),document.createTextNode()
29.得到元素的方法:document.getElementById()
30.设置表单中所有文本型的成员的值为空:
var form = window.document.forms[0]
for (var i = 0; i if (form.elements.type == &#8220;text&#8221;){
form.elements.value = &#8220;&#8221;;
}
}
31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中
返回TRUE或FALSE)
32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length
33.单选按钮组判断是否被选中也是用checked.
34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.sel
ectedIndex来确定被选中的值)
35.字符串的定义:var myString = new String(&#8221;This is lightsword&#8221;);
36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase();
37.返回字符串2在字符串1中出现的位置:String1.indexOf(&#8221;String2&#8243;)!=-1则说明没找到.
38.取字符串中指定位置的一个字符:StringA.charAt(9);
39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6);
40.数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最
在值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.ra
ndom()*(n+1))返回随机数
41.定义日期型变量:var today = new Date();
42.日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear()得到
四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期几,dat
eObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,dateObj.setTi
me(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(va
l)设置日,dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,
dateObj.setSeconds(val)设置秒 [注意:此日期时间从0开始计]
43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarN
ame,frameName.ObjFuncVarName
44.parent代表父亲对象,top代表最顶端对象
45.打开子窗口的父窗口为:opener
46.表示当前所属的位置:this
47.当在超链接中调用JS函数时用:(javascript  来开头后面加函数名
48.在老的浏览器中不执行此JS:
49.引用一个文件式的JS:
50.指定在不支持脚本的浏览器显示的HTML:
51.当超链和onCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:dfsadf
52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,
ReferenceError,RegExp,String,SyntaxError,TypeError,URIError
53.JS中的换行:\n
54.窗口全屏大小:
55.JS中的all代表其下层的全部元素
56.JS中的焦点顺序:document.getElementByid(&#8221;表单元素&#8221;).tabIndex = 1
57.innerHTML的值是表单元素的值:如
&#8220;how are you&#8221;
,则innerHTML的值就是:how are you
58.innerTEXT的值和上面的一样,只不过不会把这种标记显示出来.
59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.
60.isDisabled判断是否为禁止状态.disabled设置禁止状态
61.length取得长度,返回整型数值
62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc
63.window.focus()使当前的窗口在所有窗口之前.
64.blur()指失去焦点.与FOCUS()相反.
65.select()指元素为选中状态.
66.防止用户对文本框中输入文本:onfocus=&#8221;this.blur()&#8221;
67.取出该元素在页面中出现的数量:document.all.tags(&#8221;div(或其它HTML标记符)&#8221;).length
68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()
69.状态栏文字的设置:window.status=&#8217;文字&#8217;,默认的状态栏文字设置:window.defaultStatus = &#8216;文字.&#8217;;
70.添加到收藏夹:external.AddFavorite(&#8221;http://www.dannyg.com/&#8221;t;,&#8221;jaskdlf&#8221;);
71.JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.on
error = [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000080;">每一项都是js中的小技巧，但十分的实用！<br />
1.document.write(&#8221;"); 输出语句<br />
2.JS中的注释为//<br />
3.传统的HTML文档顺序是:document-&gt;html-&gt;(head,body)<br />
4.一个浏览器窗口中的DOM顺序是:window-&gt;(navigator,screen,history,location,document)<br />
5.得到表单中元素的名称和值:document.getElementById(&#8221;表单中元素的ID号&#8221;).name(或value)<br />
6.一个小写转大写的JS: document.getElementById(&#8221;output&#8221;).value = document.getElementById(&#8221;i</span></p>
<p><span style="color: #000080;">nput&#8221;).value.toUpperCase();</span><br />
<span id="more-3145"></span>7.JS中的值类型:String,Number,Boolean,Null,Object,Function<br />
8.JS中的字符型转换成数值型:parseInt(),parseFloat()<br />
9.JS中的数字转换成字符型:(&#8221;"+变量)<br />
10.JS中的取字符串长度是:(length)<br />
11.JS中的字符与字符相连接使用+号.<br />
12.JS中的比较操作符有:==等于,!=不等于,&gt;,&gt;=,&lt;.&lt;=<br />
13.JS中声明变量使用:var来进行声明<br />
14.JS中的判断语句结构:if(condition){}else{}<br />
15.JS中的循环结构:for([initial e­xpression];[condition];[upadte e­xpression]) {inside loop}<br />
16.循环中止的命令是:break<br />
17.JS中的函数定义:function functionName([parameter],&#8230;)<br />
18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替.<br />
19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self<br />
20.状态栏的设置:window.status=&#8221;字符&#8221;;<br />
21.弹出提示信息:window.alert(&#8221;字符&#8221;);<br />
22.弹出确认框:window.confirm();<br />
23.弹出输入提示框:window.prompt();<br />
24.指定当前显示链接的位置:window.location.href=&#8221;URL&#8221;<br />
25.取出窗体中的所有表单的数量:document.forms.length<br />
26.关闭文档的输出流:document.close();<br />
27.字符串追加连接符:+=<br />
28.创建一个文档元素:document.createElement(),document.createTextNode()<br />
29.得到元素的方法:document.getElementById()<br />
30.设置表单中所有文本型的成员的值为空:<br />
var form = window.document.forms[0]<br />
for (var i = 0; i if (form.elements.type == &#8220;text&#8221;){<br />
form.elements.value = &#8220;&#8221;;<br />
}<br />
}<br />
31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中<br />
返回TRUE或FALSE)<br />
32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length<br />
33.单选按钮组判断是否被选中也是用checked.<br />
34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.sel<br />
ectedIndex来确定被选中的值)<br />
35.字符串的定义:var myString = new String(&#8221;This is lightsword&#8221;);<br />
36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase();<br />
37.返回字符串2在字符串1中出现的位置:String1.indexOf(&#8221;String2&#8243;)!=-1则说明没找到.<br />
38.取字符串中指定位置的一个字符:StringA.charAt(9);<br />
39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6);<br />
40.数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最<br />
在值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.ra<br />
ndom()*(n+1))返回随机数<br />
41.定义日期型变量:var today = new Date();<br />
42.日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear()得到<br />
四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期几,dat<br />
eObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,dateObj.setTi<br />
me(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(va<br />
l)设置日,dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,<br />
dateObj.setSeconds(val)设置秒 [注意:此日期时间从0开始计]<br />
43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarN<br />
ame,frameName.ObjFuncVarName<br />
44.parent代表父亲对象,top代表最顶端对象<br />
45.打开子窗口的父窗口为:opener<br />
46.表示当前所属的位置:this<br />
47.当在超链接中调用JS函数时用:(javascript <img src='http://www.helloyi.cn/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> 来开头后面加函数名<br />
48.在老的浏览器中不执行此JS:<br />
49.引用一个文件式的JS:<br />
50.指定在不支持脚本的浏览器显示的HTML:<br />
51.当超链和onCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:dfsadf<br />
52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,<br />
ReferenceError,RegExp,String,SyntaxError,TypeError,URIError<br />
53.JS中的换行:\n<br />
54.窗口全屏大小:<br />
55.JS中的all代表其下层的全部元素<br />
56.JS中的焦点顺序:document.getElementByid(&#8221;表单元素&#8221;).tabIndex = 1<br />
57.innerHTML的值是表单元素的值:如<br />
&#8220;how are you&#8221;</p>
<p>,则innerHTML的值就是:how are you<br />
58.innerTEXT的值和上面的一样,只不过不会把这种标记显示出来.<br />
59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.<br />
60.isDisabled判断是否为禁止状态.disabled设置禁止状态<br />
61.length取得长度,返回整型数值<br />
62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc<br />
63.window.focus()使当前的窗口在所有窗口之前.<br />
64.blur()指失去焦点.与FOCUS()相反.<br />
65.select()指元素为选中状态.<br />
66.防止用户对文本框中输入文本:onfocus=&#8221;this.blur()&#8221;<br />
67.取出该元素在页面中出现的数量:document.all.tags(&#8221;div(或其它HTML标记符)&#8221;).length<br />
68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()<br />
69.状态栏文字的设置:window.status=&#8217;文字&#8217;,默认的状态栏文字设置:window.defaultStatus = &#8216;文字.&#8217;;<br />
70.添加到收藏夹:external.AddFavorite(&#8221;http://www.dannyg.com/&#8221;t;,&#8221;jaskdlf&#8221;);<br />
71.JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.on<br />
error = handleError;<br />
72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener&#8230;的多重继续.<br />
73.JS中的self指的是当前的窗口<br />
74.JS中状态栏显示内容:window.status=&#8221;内容&#8221;<br />
75.JS中的top指的是框架集中最顶层的框架<br />
76.JS中关闭当前的窗口:window.close();<br />
77.JS中提出是否确认的框:if(confirm(&#8221;Are you sure?&#8221;))else{alert(&#8221;Not Ok&#8221;);}<br />
78.JS中的窗口重定向:window.navigate(&#8221;http://www.sina.com.cn/&#8221;t;);<br />
79.JS中的打印:window.print()<br />
80.JS中的提示输入框:window.prompt(&#8221;message&#8221;,&#8221;defaultReply&#8221;);<br />
81.JS中的窗口滚动条:window.scroll(x,y)<br />
82.JS中的窗口滚动到位置:window.scrollby<br />
83.JS中设置时间间隔:setInterval(&#8221;expr&#8221;,msecDelay)或setInterval(funcRef,msecDelay)或setTimeou<br />
t<br />
84.JS中的模态显示在IE4+行,在NN中不行:showModalDialog(&#8221;URL&#8221;[,arguments][,features]);<br />
85.JS中的退出之前使用的句柄:function verifyClose(){event.returnValue=&#8221;we really like you and ho<br />
pe you will stay longer.&#8221;;}} window.onbeforeunload=verifyClose;<br />
86.当窗体第一次调用时使用的文件句柄:onload()<br />
87.当窗体关闭时调用的文件句柄:onunload()<br />
88.window.location的属性: protocol(http:),hostname(example.com),port(80),host(e<br />
xample.com:80),pathname(&#8221;/a/a.html&#8221;),hash(&#8221;#giantGizmo&#8221;,指跳转到相应的锚记),href(全部的信<br />
息)<br />
89.window.location.reload()刷新当前页面.<br />
90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回<br />
第几页,也可以使用访问过的URL)<br />
91.document.write()不换行的输出,document.writeln()换行输出<br />
92.document.body.noWrap=true;防止链接文字折行.<br />
93.变量名.charAt(第几位),取该变量的第几位的字符.<br />
94.&#8221;abc&#8221;.charCodeAt(第几个),返回第几个字符的ASCii码值.<br />
95.字符串连接:string.concat(string2),或用+=进行连接<br />
96.变量.indexOf(&#8221;字符&#8221;,起始位置),返回第一个出现的位置(从0开始计算)<br />
97.string.lastIndexOf(searchString[,startIndex])最后一次出现的位置.<br />
98.string.match(regExpression),判断字符是否匹配.<br />
99.string.replace(regExpression,replaceString)替换现有字符串.<br />
100.string.split(分隔符)返回一个数组存储值.<br />
101.string.substr(start[,length])取从第几位到指定长度的字符串.<br />
102.string.toLowerCase()使字符串全部变为小写.<br />
103.string.toUpperCase()使全部字符变为大写.<br />
104.parseInt(string[,radix(代表进制)])强制转换成整型.<br />
105.parseFloat(string[,radix])强制转换成浮点型.<br />
106.isNaN(变量):测试是否为数值型.<br />
107.定义常量的关键字:const,定义变量的关键字:var</p>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2010/03/02/100-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascript代码在IE和Firefox间的区别</title>
		<link>http://www.helloyi.cn/index.php/2010/02/26/javascript-ie-firefo/</link>
		<comments>http://www.helloyi.cn/index.php/2010/02/26/javascript-ie-firefo/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 02:57:57 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=3095</guid>
		<description><![CDATA[1.    HTML 对象的 id 作为对象名的问题
IE：HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用
FF：不支持
解决方法：使用document.getElementById替代document.all
2.       如果控件只有name,没有id, 用getElementById时:
IE：可以找到对象
FF：返回NULL
解决方法：所有控件必须设置ID属性
3.       Evel:
IE：支持，利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象
FF：不支持。
解决方法：统一使用getElementById(idName) 代替 eval(idName)。
4.       Event：
IE：用全局对象window.event
FF：event只能在事件发生的现场使用，在调用函数时传入event对象
解决方法：使用之前做一下浏览器类型判断，各用各的。
5.       对象名称中美元符号‘$’ 改为使用下划线‘_’
6.       集合类对象问题
IE：可以使用()或[]获取集合类对象
FF：只能使用[]获取集合类对象
现有代码中存在许多，不能在 FF 下运行
解决方法:统一使用[]获取集合类对象。document.form.item(&#8221;itemName&#8221;) 这样的语句改为document.form.elements["elementName"]
7.       变量名与某 HTML 对象 id 相同的问题
IE：不能使用与 HTML 对象 id 相同的变量名
FF：可以使用
解决方法：在声明变量时，一律加上 var ，以避免歧义，这样在 IE 中亦可正常运行。
此外，最好不要取与 HTML 对象 id 相同的变量名，以减少错误。
8.       Event定位问题
IE：支持event.x 和event.y
FF：支持event.pageX和event.pageY
解决方法，统一使用event.clientX和event.clientY，但是在FF中event.clientX 与 event.pageX 有微妙的差别（当整个页面有滚动条的时候），不过大多数时候是等效的。如果要完全一样，可以判断浏览器类型后对应使用。
9.       父结点的问题
IE：parentElement parentElement.children
FF：parentNode parentNode.childNodes
childNodes的下标的含义在IE和FF中不同，FF使用DOM规范，childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。
当html中节点缺失时，IE和FF对parentNode的解释不同，例如
&#60;form&#62;
&#60;table&#62;
  [...]]]></description>
			<content:encoded><![CDATA[<p>1.    HTML 对象的 id 作为对象名的问题<br />
IE：HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用<br />
FF：不支持<br />
解决方法：使用document.getElementById替代document.all</p>
<p>2.       如果控件只有name,没有id, 用getElementById时:<br />
IE：可以找到对象<br />
FF：返回NULL<br />
解决方法：所有控件必须设置ID属性</p>
<p><span id="more-3095"></span>3.       Evel:<br />
IE：支持，利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象<br />
FF：不支持。<br />
解决方法：统一使用getElementById(idName) 代替 eval(idName)。</p>
<p>4.       Event：<br />
IE：用全局对象window.event<br />
FF：event只能在事件发生的现场使用，在调用函数时传入event对象<br />
解决方法：使用之前做一下浏览器类型判断，各用各的。</p>
<p>5.       对象名称中美元符号‘$’ 改为使用下划线‘_’</p>
<p>6.       集合类对象问题<br />
IE：可以使用()或[]获取集合类对象<br />
FF：只能使用[]获取集合类对象<br />
现有代码中存在许多，不能在 FF 下运行<br />
解决方法:统一使用[]获取集合类对象。document.form.item(&#8221;itemName&#8221;) 这样的语句改为document.form.elements["elementName"]</p>
<p>7.       变量名与某 HTML 对象 id 相同的问题<br />
IE：不能使用与 HTML 对象 id 相同的变量名<br />
FF：可以使用<br />
解决方法：在声明变量时，一律加上 var ，以避免歧义，这样在 IE 中亦可正常运行。<br />
此外，最好不要取与 HTML 对象 id 相同的变量名，以减少错误。</p>
<p>8.       Event定位问题<br />
IE：支持event.x 和event.y<br />
FF：支持event.pageX和event.pageY<br />
解决方法，统一使用event.clientX和event.clientY，但是在FF中event.clientX 与 event.pageX 有微妙的差别（当整个页面有滚动条的时候），不过大多数时候是等效的。如果要完全一样，可以判断浏览器类型后对应使用。</p>
<p>9.       父结点的问题<br />
IE：parentElement parentElement.children<br />
FF：parentNode parentNode.childNodes<br />
childNodes的下标的含义在IE和FF中不同，FF使用DOM规范，childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。</p>
<p>当html中节点缺失时，IE和FF对parentNode的解释不同，例如<br />
&lt;form&gt;<br />
&lt;table&gt;<br />
  &lt;input/&gt;<br />
&lt;/table&gt;<br />
&lt;/form&gt;<br />
IE：input.parentNode的值为空节点<br />
FF：input.parentNode的值为form<br />
FF中节点没有removeNode方法，必须使用如下方法 node.parentNode.removeChild(node)</p>
<p>10.   const 问题<br />
现有问题：<br />
IE：不支持 const 关键字。如 const constVar = 32; 在IE中这是语法错误。<br />
FF：支持<br />
解决方法：不使用 const ，以 var 代替。</p>
<p>11.   body 对象<br />
IE：在body标签完全被读入之后才存在<br />
FF：在body标签没有被浏览器完全读入之前就存在</p>
<p>12.   自定义属性问题<br />
IE：可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性<br />
FF：只能使用getAttribute()获取自定义属性.<br />
解决方法：统一通过getAttribute()获取自定义属性</p>
<p>13.   event.srcElement问题<br />
IE：even.srcElement<br />
FF：even.target<br />
解决方法:使用时判断浏览器类型，各用各的。</p>
<p>14.   模态和非模态窗口<br />
IE：支持模态和非模态窗口<br />
FF：不支持<br />
解决方法：直接使用window.open(pageURL,name,parameters)方式打开新窗口。如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口。</p>
<p>15.   innerText<br />
IE：innerText<br />
FF：textContent</p>
<p>16.   类似 obj.style.height = imgObj.height 的语句<br />
IE：有效<br />
FF：无效<br />
解决方法：统一使用obj.style.height = imgObj.height + &#8216;px&#8217;;</p>
<p>本文来自CSDN博客，转载请标明出处：<a href="http://blog.csdn.net/nileel/archive/2009/08/19/4461687.aspx">http://blog.csdn.net/nileel/archive/2009/08/19/4461687.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2010/02/26/javascript-ie-firefo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>有关 JavaScript 的 10 件让人费解的事情</title>
		<link>http://www.helloyi.cn/index.php/2010/02/24/javascript-ajaxtop-10-things-that-javascript-got-wrong/</link>
		<comments>http://www.helloyi.cn/index.php/2010/02/24/javascript-ajaxtop-10-things-that-javascript-got-wrong/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 10:42:45 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=3091</guid>
		<description><![CDATA[JavaScript 可算是世界上最流行的编程语言，它曾被 Web 开发设计师贴上噩梦的标签，虽然真正的噩梦其实是 DOM API，这个被大量的开发与设计师随手拈来增强他们的 Web 前端的脚本语言，如今越来越被重视，虽则如此，JavaScript 仍然拥有很多让人费解的东西。
1. 它以 Java 命名，但并不是 Java
它最初叫 Mocha， 接着改名为 LiveScript，最后才确定命名为 JavaScript，根据历史记录，Java 的命名与 Netscape 和 Sun 之间的合作有关，作为交换条件，Netscape 在他们备受欢迎的浏览器中创建了 Java 运行时。值得一提的是，这个名字的出台几近一个玩笑，要知道，LiveScript 和 Java 在客户端脚本方面存在敌对关系。
不管怎么说，人们后来不得不一再澄清的一件事就是，JavaScript 和 Java 毫无关系。
2. Null 是个对象？
看看这段代码，它返回的是 object。

这实在令人费解，假如 null 表示空值，它怎么可以是对象？简单说，它是 JavaScript 最初版本的错误，这个错误甚至被微软的 JScript 直接借用。
3. NaN !== NaN
NaN，表示一个非数字的值，然而问题是，NaN不等于任何东西，甚至不等于它自己。

这显然不对，事实上，如果要判断一个值确实是 NaN，你需要用 isNaN() 函数。
4. 全局变量
对全局变量的依赖一直被视为 JavaScript 最坏的部分（ECMA 的 JavaScript 5 已经去掉了全局变量，请参阅 ECMA 推出 [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript 可算是世界上最流行的编程语言，它曾被 Web 开发设计师贴上噩梦的标签，虽然真正的噩梦其实是 DOM API，这个被大量的开发与设计师随手拈来增强他们的 Web 前端的脚本语言，如今越来越被重视，虽则如此，JavaScript 仍然拥有很多让人费解的东西。</p>
<p><span id="more-3091"></span>1. 它以 Java 命名，但并不是 Java</p>
<p>它最初叫 Mocha， 接着改名为 LiveScript，最后才确定命名为 JavaScript，根据历史记录，Java 的命名与 Netscape 和 Sun 之间的合作有关，作为交换条件，Netscape 在他们备受欢迎的浏览器中创建了 Java 运行时。值得一提的是，这个名字的出台几近一个玩笑，要知道，LiveScript 和 Java 在客户端脚本方面存在敌对关系。</p>
<p>不管怎么说，人们后来不得不一再澄清的一件事就是，JavaScript 和 Java 毫无关系。</p>
<h3>2. Null 是个对象？</h3>
<p>看看这段代码，它返回的是 object。</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/null_object.gif" alt="" /></p>
<p>这实在令人费解，假如 null 表示空值，它怎么可以是对象？简单说，它是 JavaScript 最初版本的错误，这个错误甚至被微软的 JScript 直接借用。</p>
<h3>3. NaN !== NaN</h3>
<p>NaN，表示一个非数字的值，然而问题是，NaN不等于任何东西，甚至不等于它自己。</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/nan_not_equal_nan.gif" alt="" /></p>
<p>这显然不对，事实上，如果要判断一个值确实是 NaN，你需要用 isNaN() 函数。</p>
<h3>4. 全局变量</h3>
<p>对全局变量的依赖一直被视为 JavaScript 最坏的部分（ECMA 的 JavaScript 5 已经去掉了全局变量，请参阅 <a href="http://www.helloyi.cn/GetKnowledge/zh-CN/It_News_K875.aspx">ECMA 推出 JavaScript 5</a> &#8211; 译者注）。对简单的页面，这无所谓，但复杂的页面，如果包含大量 JavaScript 脚本，你很难知道某个全局变量是在哪里声明的，如果几个全局变量不小心重名，就会引发错误。</p>
<h3>5. 那些统统被探测为 Mozilla User-Agent 的浏览器</h3>
<p>必须承认，事实上，这不是 JavaScript  的错，是各个浏览器有意为之。比如，以下是用 JavaScript 探测 Safari 时得到的结果：</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/safari_user_agent.gif" alt="" /></p>
<p>是否注意到其中的第一个单词 <strong>Mozilla/5.0</strong>，为什么 Safari 会被探测为 Mozilla，尽管 Safari 后来已经纠正这一问题，但仍然不能解释为什么它们要这样误导开发者。事实上，你会发现，绝大多数浏览器把他们的 User Agent 设置为 Mozilla，答案要回到10年前，这更多是一种策略。</p>
<p>User Agent 是一段用来标识当前浏览器身份的字符串，世界上第一个浏览器 Mosaic， 曾这样标志自己：</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/mosaic_user_agent.gif" alt="" /></p>
<p>这很合理，因此当 Netscape 出来的时候，它保留了 Mosaic 这个传统，还在后面添加了一个加密方式部分。</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/netscape_user_agent.gif" alt="" /></p>
<p>到目前为止，一切安好，直到 IE3 发布，当 IE3 发布的时候，Netscape 正如日中天，那时，很多服务器和程序已经部署了客户端探测机制，以便认出 Netscape，虽然现在看来，这很值得争议，但当时并没什么。当 IE 初次推出它们的 User Agent 标志的时候，是这个样子：</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/ie_user_agent_1.gif" alt="" /></p>
<p><strong> </strong></p>
<p>这让 IE 很被动，因为 Netscape 已经能被很多服务器识别，因此，开发者们干脆希望 IE 被误认为 Mozilla，然后，再单独加一个 IE 的标签。</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/ie_user_agent_2.gif" alt="" /></p>
<p>如今，几乎所有浏览器都步 IE 后尘，将自己标识为 Mozilla，这大概是一种连锁反应。</p>
<h3>6. 不一致的函数范围</h3>
<p>参看以下代码：</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/scope_inconsistencies.gif" alt="" /></p>
<p>foo(bar.method) 返回结果不同原因是，method 函数是被当作 windows 对象，而不是 bar 下的对象调用的。要解决这个问题，我们必须从传递的匿名函数中调用 bar.method() 。</p>
<h3>7. 位操作符</h3>
<p>JavaScript 和 Java 有不少共同之处，如位操作。</p>
<ul>
<li><strong>&amp;</strong> &#8211; <em>and</em></li>
<li><strong>|</strong> &#8211; <em>or</em></li>
<li><strong>^</strong> &#8211; <em>xor</em></li>
<li><strong>~</strong> &#8211; <em>not</em></li>
<li><strong>&gt;&gt;</strong> &#8211; <em>signed right shift</em></li>
<li><strong>???</strong> &#8211; <em>unsigned right shift</em></li>
<li><strong>&lt;&lt;</strong> &#8211; <em>left shift</em></li>
</ul>
<p>看看第一个 &amp; 操作符，使用 &amp;&amp; 应该更有效，因为 JavaScript 和 Java 不一样，JavaScript 没有整数，需要来回转换，因此，转换操作花的时间更长。</p>
<h3>8. 太多的空值类型</h3>
<p>诸如 null, false, undefined 一类的值几乎表示同样的意思，它们之间的不同又让人很迷惑。</p>
<h3>9. 算术问题</h3>
<p>虽然 JavaScript 包含很多算术操作，但你不妨运行一下下面的算式，&#8221;.2+.4&#8243; 应该等于 &#8220;.6&#8243; 是不是，然而返回的确是 &#8220;0.6000000000000001&#8243;。JavaScript 在小数计算访问存在一些小问题。</p>
<div><img style="border: #a0a0a0 1px solid;" src="http://nettuts.s3.amazonaws.com/571_jsWrong/math.png" alt="Math" /></div>
<p>为什么会这样？简单说，因为 JavaScript 使用 IEEE 标准进行二进制浮点运算，不过，对整数计算是没问题的。</p>
<h3>10. 莫名其妙的代码错误</h3>
<p>看看以下两段代码：</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/code_error_1.gif" alt="" /></p>
<p>它们应该是一样的，只是 { 位置不同而已，是吧。然而我们再看下面的代码：</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/code_error_2.gif" alt="" /></p>
<p>如果我们把其中的</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/code_error_3.gif" alt="" /></p>
<p>换成</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/code_error_4.gif" alt="" /></p>
<p>就会引发错误，这是因为 JavaScript 有一个功能，会纠正它认为错误的代码书写，它会自作聪明地在 return 这个词后面插入一个 &#8220;;&#8221; ，错误因此而生。</p>
<p><img src="http://www.helloyi.cn/Writable/Resource/_Random_/2010-02-14/code_error_5.gif" alt="" /></p>
<p> </p>
<p>本文来源：<a href="http://net.tutsplus.com/tutorials/javascript-ajax/top-10-things-that-javascript-got-wrong/">http://net.tutsplus.com/tutorials/javascript-ajax/top-10-things-that-javascript-got-wrong/</a><br />
中文编译来源：<a href="http://www.comsharp.com/"><strong>锐商企业CMS</strong>网站内容管理系统</a>官方站</p>
<p><a href="http://www.helloyi.cn/wp-admin/post-new.php"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2010/02/24/javascript-ajaxtop-10-things-that-javascript-got-wrong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2009 年度最佳 jQuery 插件</title>
		<link>http://www.helloyi.cn/index.php/2009/12/16/2009-best_plugins_of_jquery/</link>
		<comments>http://www.helloyi.cn/index.php/2009/12/16/2009-best_plugins_of_jquery/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 11:39:15 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>
		<category><![CDATA[css/html]]></category>
		<category><![CDATA[javascript/ajax]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=3019</guid>
		<description><![CDATA[
jQuery 是个宝库，而 jQuery 的插件体系是个取之不竭的宝库，众多开发者在 jQuery 框架下，设计了数不清的插件，jQuery 的特长是网页效果，因此，它的插件库也多与 UI 有关 网站推选的2009年度最佳 jQuery 插件拉洋片:
在一个固定区域，循环显示几段内容，这种方式很像旧时的拉洋片，2009年，这种 Web 效果大行其道，jQuery 有大量与此有关的插件，以下插件无疑是最佳的。
AnythingSlider： 由 CSS-Tricks 的 Chris Coyier 设计，功能齐全，应用十分广泛。
Easy Slider： 这个 Content Slider 插件既包含传统“前后”导航模式，又包含页码式导航。
Coda-Slider 2.0： Coda-Slider 2.0 是对 Panic Coda 网站上对应效果的模仿。
图片库
那些需要借助 Flash 实现滑动与渐入渐出效果图片库的日子已经去过，借助 jQuery，这种效果已经可以在本地实现，以下是本年度备受欢迎的几个 jQuery 图片库插件。
Galleria： 这是一个基于 jQuery 的图片库，可以逐个加载图片并显示缩略图。
jQuery Panel Gallery： 一个可以高度定义的图片库插件，无需对单个图片进行任何处理，这个插件会帮你完成一切。
slideViewer： slideViewer 会检查你的图片列表中的编号，动态创建各个图片的页码浏览导航。
Supersized： 一个令人惊讶的图片循环展示插件，包含各种变换效果和预加载选项，会对图片自动改变尺寸以适应浏览器窗口。
导航
我们相信，作为网站的导航系统，应该越简单，越易用越好，然而，假如你确实希望实现一些更炫的效果，jQuery 就是最好的选项，以下插件是09年最好的 jQuery 导航插件。
jquery mb.menu 
Horizontal Scroll Menu with [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>jQuery 是个宝库，而 jQuery 的插件体系是个取之不竭的宝库，众多开发者在 jQuery 框架下，设计了数不清的插件，jQuery 的特长是网页效果，因此，它的插件库也多与 UI 有关 网站推选的2009年度最佳 jQuery 插件<span id="more-3019"></span>拉洋片:</p>
<p>在一个固定区域，循环显示几段内容，这种方式很像旧时的拉洋片，2009年，这种 Web 效果大行其道，jQuery 有大量与此有关的插件，以下插件无疑是最佳的。</p>
<p><a href="http://www.oschina.net/p/anythingslider">AnythingSlider</a>： <a href="http://css-tricks.com/anythingslider-jquery-plugin/"></a>由 CSS-Tricks 的 Chris Coyier 设计，功能齐全，应用十分广泛。<br />
<a href="http://www.oschina.net/p/easyslider">Easy Slider</a>： <a href="http://cssglobe.com/post/5780/easy-slider-17-numeric-navigation-jquery-slider"></a>这个 Content Slider 插件既包含传统“前后”导航模式，又包含页码式导航。<br />
<a href="http://www.oschina.net/p/coda-slider">Coda-Slider 2.0</a>： <a href="http://www.ndoherty.biz/tag/coda-slider/"></a>Coda-Slider 2.0 是对 Panic Coda 网站上对应效果的模仿。</p>
<p>图片库</p>
<p>那些需要借助 Flash 实现滑动与渐入渐出效果图片库的日子已经去过，借助 jQuery，这种效果已经可以在本地实现，以下是本年度备受欢迎的几个 jQuery 图片库插件。</p>
<p><a href="http://www.oschina.net/p/galleria">Galleria</a>： <a href="http://devkick.com/lab/galleria/"></a>这是一个基于 jQuery 的图片库，可以逐个加载图片并显示缩略图。<br />
<a href="http://www.oschina.net/p/panel-gallery">jQuery Panel Gallery</a>： <a href="http://www.catchmyfame.com/2009/08/13/jquery-panel-gallery-1-1-plugin-released/"></a>一个可以高度定义的图片库插件，无需对单个图片进行任何处理，这个插件会帮你完成一切。<br />
<a href="http://www.oschina.net/p/slideviewer">slideViewer</a>： <a href="http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html"></a>slideViewer 会检查你的图片列表中的编号，动态创建各个图片的页码浏览导航。<br />
<a href="http://www.oschina.net/p/supersized">Supersized</a>： <a href="http://www.buildinternet.com/project/supersized/"></a>一个令人惊讶的图片循环展示插件，包含各种变换效果和预加载选项，会对图片自动改变尺寸以适应浏览器窗口。</p>
<p>导航</p>
<p>我们相信，作为网站的导航系统，应该越简单，越易用越好，然而，假如你确实希望实现一些更炫的效果，jQuery 就是最好的选项，以下插件是09年最好的 jQuery 导航插件。</p>
<p><a href="http://www.oschina.net/p/mbmenu">jquery mb.menu</a> <a href="http://pupunzi.open-lab.com/mb-jquery-components/mb-_menu/"></a><br />
<a href="http://www.oschina.net/p/horizontal+scroll+menu+with+jquery">Horizontal Scroll Menu with jQuery </a><br />
<a href="http://www.queness.com/post/256/horizontal-scroll-menu-with-jquery-tutorial"></a><a href="http://www.oschina.net/p/autosprites">AutoSprites</a></p>
<p><a href="http://www.newmediacampaigns.com/page/autosprites-jquery-menu-plugin"></a>表单和表格</p>
<p>在 Web 设计中，表单和表格都是不是很讨人喜欢的东西，但你不得不面对，本年度出现几个不错的 jQuery 插件帮你完成这些任务。</p>
<p><a href="http://www.oschina.net/p/password-strength">Password Strength</a>： <a href="http://www.unwrongest.com/projects/password-strength/"></a>这个插件帮你评估用户输入的密码是否足够强壮。<br />
<a href="http://www.oschina.net/p/ajax+fancy+capcha">Ajax Fancy Capcha</a>： <a href="http://www.webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin"></a>顾名思义，一个支持 Ajax 又很炫的 jQuery Captcha 插件，它使用了很人性化的验证机制。<br />
<a href="http://www.oschina.net/p/chromatable">Chromatable</a>： <a href="http://www.chromaloop.com/posts/chromatable-jquery-plugin"></a>这个插件可以帮助你在表格上实现滚动条。<br />
<a href="http://www.oschina.net/p/jqtransform">jqTransform</a>： <a href="http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/"></a>一个式样插件，帮助你对表单中的控件进行式样控制。<br />
<a href="http://www.oschina.net/p/uploadify">Uploadify</a>： <a href="http://www.uploadify.com/"></a>实现多个文件同时上传。<br />
<a href="http://www.oschina.net/p/jexpand">jExpand </a>： <a href="http://www.jankoatwarpspeed.com/post/2009/07/20/Expand-table-rows-with-jQuery-jExpand-plugin.aspx"></a>一个很轻量的 jQuery 插件，使你的表格可以扩展，在一些商业应用中，可以让表格更容易组织其中的内容。</div>
<p><!-- google_ad_section_end --></p>
<div>新闻来自:COMSHARP CMS 企业网站内容管理系统官方站</div>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2009/12/16/2009-best_plugins_of_jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>四种表单验证方法的分析和比较</title>
		<link>http://www.helloyi.cn/index.php/2009/10/10/4-formvalid/</link>
		<comments>http://www.helloyi.cn/index.php/2009/10/10/4-formvalid/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 02:50:47 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>
		<category><![CDATA[css/html]]></category>
		<category><![CDATA[javascript/ajax]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=2952</guid>
		<description><![CDATA[任何可以交互的站点都有输入表单，只要有可能，就应该对用户输入的数据进行验证。无论服务器后端是什么样的系统，都不愿意把时间浪费在一些无效的信息上，必须对表单数据进行校验，若有不符合规定的表单输入，应及时返回并给出相应的提示信息。本文将列举四种不同原理的表单验证方法，并给出各方法在  PHP 服务器上的实现。

















回页首







浏览器端验证
传统上，表单数据一般都通过浏览器端的 Javascript  验证。浏览器端的验证速度快，若有不符合要求的输入，响应信息快速的返回给用户。由于验证数据不需要提交给服务器，不会加重服务器的负载。一个浏览器端验证的过程如图 1  所示，表单提交，若通过验证则提交服务器处理，不成功则回馈给用户。
图 1.  浏览器端验证原理图

本文给出的各种表单验证方法 源代码 均以一个简单的表单为例，该表单包含“UserName”和“Password”两个文本输入框，及一个“Submit”按钮。代码清单 1 给出了浏览器端  Javascript 验证的例子。若“UserName”或“Password”输入不符合要求，通过弹出框的形式提示用户，并返回 false,  停止表单提交。
清单 1. 浏览器端 Javascript 验证代码





 function validform(thisForm)
   {
      error_string = "";
      if((message=checkusername(thisForm.username))!="")
        {
  [...]]]></description>
			<content:encoded><![CDATA[<p>任何可以交互的站点都有输入表单，只要有可能，就应该对用户输入的数据进行验证。无论服务器后端是什么样的系统，都不愿意把时间浪费在一些无效的信息上，必须对表单数据进行校验，若有不符合规定的表单输入，应及时返回并给出相应的提示信息。本文将列举四种不同原理的表单验证方法，并给出各方法在  PHP 服务器上的实现。</p>
<p><span id="more-2952"></span></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1" /><br />
<img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="right">
<tbody>
<tr align="right">
<td><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4" /></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="center"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16" /></td>
<td align="right" valign="top"><a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#main"><strong>回页首</strong></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><a name="major2"><span>浏览器端验证</span></a></p>
<p>传统上，表单数据一般都通过浏览器端的 Javascript  验证。浏览器端的验证速度快，若有不符合要求的输入，响应信息快速的返回给用户。由于验证数据不需要提交给服务器，不会加重服务器的负载。一个浏览器端验证的过程如图 1  所示，表单提交，若通过验证则提交服务器处理，不成功则回馈给用户。<br />
<a name="fig1"><strong>图 1.  浏览器端验证原理图</strong></a><br />
<img src="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/image003.jpg" alt="图 1. 浏览器端验证原理图" width="480" height="222" /></p>
<p>本文给出的各种表单验证方法 <a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#download">源代码</a> 均以一个简单的表单为例，该表单包含“UserName”和“Password”两个文本输入框，及一个“Submit”按钮。代码清单 1 给出了浏览器端  Javascript 验证的例子。若“UserName”或“Password”输入不符合要求，通过弹出框的形式提示用户，并返回 false,  停止表单提交。<br />
<a name="listing1"><strong>清单 1. 浏览器端 Javascript 验证代码</strong></a></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<pre>
 function validform(thisForm)
   {
      error_string = "";
      if((message=checkusername(thisForm.username))!="")
        {
          error_string="UserName:"
          error_string += message;
          alert(error_string);
          return false;
         }
      if((message = checkpassword(thisForm.pass))!="")
        {
          error_string="Password:"
          error_string += message;
          alert(error_string);
          return false;
         }
       return true；
    }</pre>
</td>
</tr>
</tbody>
</table>
<p>从图 1 可以看出这种表单验证方法有一个致命的缺点，很多工具可以在表单检验过后、浏览器发送请求前截取表单数据，攻击者可以修改请求中的数据，从而绕过  JavaScript，将恶意数据注入服务器，这样会增加 <a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#resources">XSS</a>（全称  Cross Site Scripting）攻击的机率。对于一般的网站，都不赞成采用浏览器端的表单验证方法。</p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1" /><br />
<img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="right">
<tbody>
<tr align="right">
<td><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4" /></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="center"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16" /></td>
<td align="right" valign="top"><a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#main"><strong>回页首</strong></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><a name="major3"><span>浏览器端和服务器端双重验证</span></a></p>
<p>浏览器端和服务器端双重验证方法在浏览器端验证方法基础上增加服务器端的验证，其原理如图 2  所示，该方法增加服务器端的验证，弥补了传统浏览器端验证的缺点。若表单输入不符合要求，浏览器端的 Javascript  验证能很快地给出响应，而服务器端的验证则可以防止恶意用户绕过 Javascript 验证，保证最终数据的准确性。<br />
<a name="fig2"><strong>图 2. 浏览器端和服务器端双重验证原理图</strong></a><br />
<img src="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/image005.jpg" alt="图 2. 浏览器端和服务器端双重验证原理图" width="503" height="219" /></p>
<p>除了客户端 Javascript 验证，该方法增加了服务器端的 PHP 验证，示例代码如清单 2 所示，checkusername() 和  checkpassword() 是 <a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#resources">PHP 语言</a> 编写的两个验证接口函数，根据 $error 结果，确定表单的有效性。<br />
<a name="listing2"><strong>清单 2. 服务器端表单的 PHP  验证</strong></a></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<pre>
 if(isset($_POST['username']))
 {
  $usermsg  = checkusername($_POST['username']);
  if($usermsg != '')
    $error = true;
  if(isset($_POST['pass']))
  {
    $passmsg = checkpassword($_POST['pass']);
    if($passmsg != '')
    $error = true;
  }
 }</pre>
</td>
</tr>
</tbody>
</table>
<p>此方法的缺点一目了然，必须维护两份代码实现相同的功能，增加开发人员的工作量，不利于后续开发。浏览器端和服务器端双重验证方法也存在一个风险，对有些表单验证的规则服务器也许不想公开给用户，而浏览器拷贝了服务器端验证的功能，向用户公布验证规则。</p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1" /><br />
<img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="right">
<tbody>
<tr align="right">
<td><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4" /></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="center"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16" /></td>
<td align="right" valign="top"><a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#main"><strong>回页首</strong></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><a name="major4"><span>服务器端验证</span></a></p>
<p>综合上述两种验证方法，现在考虑使用服务器端的验证方法，该方法结构非常简单，其原理如图 3  所示。客户端负责表单提交，服务器端验证表单，若发现错误数据，则回传表单页面，错误信息被加到同一页面中。若验证通过，则处理表单。<br />
<a name="fig3"><strong>图 3. 服务器端验证原理图</strong></a><br />
<img src="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/image007.jpg" alt="图 3. 服务器端验证原理图" width="418" height="216" /></p>
<p>此方法在遇到非法输入需要回传表单时，除了加载错误提示信息在此页面上，还必须注意，此时表单内容必须维持表单提交时的用户输入，这样用户才能将错误的表单输入与错误提示信息联系起来，有助于用户填入正确的输入。可以借助  <a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#resources">DOM 技术</a> 中的 appendChild  功能追加显示相关的错误的提示信息，其实现如代码清单 3 所示，其效果可以参考图 4。<br />
<a name="listing3"><strong>清单 3. 利用  DOM 技术实现提示信息代码</strong></a></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<pre>
 find_obj = document.getElementsByName("username");
  var sp1 = document.createElement('span');
  sp1.className= 'formerror';
  sp1.appendChild(document.createTextNode(usermsg));
  find_obj[0].parentNode.appendChild(sp1); 

  find_obj = document.getElementsByName("pass");
  var sp2 = document.createElement('span');
  sp2.className= 'formerror';
  sp2.appendChild(document.createTextNode(passmsg));
  find_obj[0].parentNode.appendChild(sp2);</pre>
</td>
</tr>
</tbody>
</table>
<p><a name="fig4"><strong>图 4.  加载错误信息效果图</strong></a><br />
<img src="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/image009.jpg" alt="图 4. 加载错误信息效果图" width="554" height="115" /></p>
<p>由于验证交由服务器端处理，该方法的输入响应速度不如浏览器端验证，主要受网络繁忙及服务器荷载的影响。同时，若同一页面的其他表单耗时较大，此回传页面方法的响应时间会进一步加大。</p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1" /><br />
<img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="right">
<tbody>
<tr align="right">
<td><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4" /></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="center"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16" /></td>
<td align="right" valign="top"><a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#main"><strong>回页首</strong></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><a name="major5"><span>基于 Ajax 技术的验证</span></a></p>
<p>基于 Ajax  技术的表单验证技术综合了服务器端验证，浏览器端及服务器端双重验证方法的优点，摒弃了两者的缺点。服务器端验证方法结构清晰，可以防止恶意攻击，其主要问题在于若输入错误表单信息，需重传整个页面，同时若同一页面有多个表单，回传整个页面可能会增加用户等待的时间。浏览器端及服务器端的双重验证响应速度快，其问题在于代码冗余。</p>
<p>基于 Ajax  技术的验证方法也需要做两次验证：首先是回馈验证，无论表单数据准确与否，服务器均给出反馈信息，其作用等同于双重验证中的浏览器端的验证；表单处理前的验证防止恶意修改，其作用等同于双重验证中的服务器端的验证。其原理如图  5 所示，一旦有表单提交，首先构建表单信息字段，交由 Ajax engine  发送给服务器端验证，服务器将验证结果发送给用户，客户端根据回馈信息，判断表单输入是否正常，在 Ajax  技术下，对用户而言，以上操作均在后台运行，不会影响当前页面各表单的状态。若是非法输入，则回馈提示信息给用户；若是正常输入，客户端将按照正常方法提交表单。为了防止恶意修改，表单处理之前还需验证，此步验证与之前验证共用代码。<br />
<a name="fig5"><strong>图 5. 基于 Ajax 技术验证原理图</strong></a><br />
<img src="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/image011.jpg" alt="图 5. 基于 Ajax 技术验证原理图" width="502" height="219" /></p>
<p>有关 Ajax 技术的知识，可以参考 developerWorks 上的 <a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#resources">系列文章</a>。Ajax 核心概念之一是 <a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#resources">XMLHttpRequest</a> 对象，这是一个 JavaScript  对象，创建该对象时，各种浏览器方法有所不同，具体实现可以参考 <a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#download">源代码</a>。</p>
<p>回馈验证主要涉及两个问题：首先是构建验证字段，其次是回馈信息的格式。</p>
<p>由于验证字段和正常表单字段共用验证代码，验证字段格式完全遵循表单提交时的格式。为某表单构建验证字段代码如清单 4 所示。其中 checkflag  字段的作用是区分两种验证。<br />
<a name="listing4"><strong>清单 4. 构建验证字段代码</strong></a></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td>
<pre>
 var postData = "";
 var fields = form.elements;
 for (var i=0; i &lt; fields.length; i++) {
 if (fields[i].name != "") {
	  type = fields[i].type;
	   if ((type == 'radio') || (type == 'checkbox')) {
	  	 if (!fields[i].checked) { continue; }
    }
 if ((type == 'submit')&amp;&amp;(!(fields[i].name == submitName))) {
	   continue;
 }
 if (postData) { postData += "&amp;"; }
 postData += fields[i].name + "=" + encodeURIComponent(fields[i].value);
          }
 }
     postData += "&amp;checkflag=1";</pre>
</td>
</tr>
</tbody>
</table>
<p>回馈信息主要在浏览端的 Javascript 中处理，不同的格式需要不同的处理方法。在传统 Ajax 动态页面处理中，回馈信息包含大量信息，采用 xml  格式，可以借助 DOM 技术处理，简化程序。在本例中，回馈信息只包含验证结果信息，简单数据格式就能满足要求，客户端的 Javascript  分析回馈信息，根据结果确定是否提交完整的表单，具体实现请参考源代码。</p>
<p>基于 Ajax  技术的验证方法代码相对比较复杂，错误的表单需要来回两次网络交互，而正确的提交则需要三次网络交互。该验证方法的响应时间与网络繁忙程度有很大的关系。相对于纯服务器端验证，该方法在验证阶段不需要重新下载整个页面，在多个表单共存在同一页面的场合，基于  Ajax 技术的验证方法不会影响同一页面的其它表单。</p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1" /><br />
<img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="right">
<tbody>
<tr align="right">
<td><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4" /></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="center"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16" /></td>
<td align="right" valign="top"><a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#main"><strong>回页首</strong></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><a name="major6"><span>小结</span></a></p>
<p>上述四种验证方法各有优缺点，用户应该根据需求选择不同的方法。浏览器端验证方法适用于对表单输入要求并不是特别严格的场所；浏览器端和服务器端双重验证应用比较广泛，但是该方法不利于后续开发；服务器端验证方法结构简单，但是开发代码相对复杂；基于  Ajax 技术的验证方法，对网络的要求高，但是该方法结构清晰，表单验证与表单处理过程分离但共用验证代码，简化开发人员的工作。</p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><img src="http://www.ibm.com/i/v14/rules/blue_rule.gif" alt="" width="100%" height="1" /><br />
<img src="http://www.ibm.com/i/c.gif" border="0" alt="" width="8" height="6" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="right">
<tbody>
<tr align="right">
<td><img src="http://www.ibm.com/i/c.gif" alt="" width="100%" height="4" /></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="center"><img src="http://www.ibm.com/i/v14/icons/u_bold.gif" border="0" alt="" width="16" height="16" /></td>
<td align="right" valign="top"><a href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/#main"><strong>回页首</strong></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p><span><a name="download">下载</a></span></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<th scope="col">描述</th>
<th scope="col">名字</th>
<th scope="col">大小</th>
<th scope="col">下载方法</th>
</tr>
<tr>
<th scope="row">示例代码</th>
<td>code.zip</td>
<td>2.8KB</td>
<td><a onkeypress="sa_onclick(this.href)" href="http://www.ibm.com/developerworks/cn/web/0909_formvalid_hulx/code.zip"><strong>HTTP</strong></a></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2009/10/10/4-formvalid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>20+免费优雅简洁wordpress主题</title>
		<link>http://www.helloyi.cn/index.php/2009/08/24/20-free-and-stylish-typography-wordpress-themes/</link>
		<comments>http://www.helloyi.cn/index.php/2009/08/24/20-free-and-stylish-typography-wordpress-themes/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 06:42:56 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress主题]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=2894</guid>
		<description><![CDATA[

优雅简洁的主题设计可以让你的网站或博客仅仅通过文字表现就能变成不一样的视觉感受以下为你收集了20多款此类型的WordPress主题:
Typogriph

View Demo
WP Typo

View Demo
Typography

View Demo
Thesis Theme

View Demo
Manifest

View Demo
Boumatic

View Demo
Neutica

View Demo
Oulipo

View Demo
Wu Wei

View Demo
Upstart Blogger Futurosity Magazine

View Demo
Upstart Blogger

View Demo
BlackPower Theme

View Demo
Gran Impetu

View Demo
Simply Ornate

View Demo
Neoclassical Theme

View Demo
Inuit Types

View Demo
Clear Cut

View Demo
MagZine

View Demo
Spicy Typography

View Demo
Sugar Cane

View Demo
]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="wordpress" src="http://www.helloyi.cn/index.php?feedimage=wp-content/uploads/2009/08/wordpress.jpg" alt="wordpress" width="162" height="61" /></p>
<p style="text-align: center;">
<p style="text-align: left;">优雅简洁的主题设计可以让你的网站或博客仅仅通过文字表现就能变成不一样的视觉感受以下为你收集了20多款此类型的<a href="http://www.helloyi.cn/index.php/tag/wordpressplugins/" class="st_tag internal_tag" rel="tag nofollow" title="标签 wordpress 下的日志">WordPress</a>主题:</p>
<p><span id="more-2894"></span><a href="http://wp-content-themes.com/typogriph-a-free-fluid-wordpress-27-theme/150">Typogriph</a></p>
<p><a href="http://wp-content-themes.com/typogriph-a-free-fluid-wordpress-27-theme/150"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography1.jpg" alt="Wordpress Typography Themes" width="439" height="598" /></a></p>
<p><a href="http://www.gavagai.ro/blues/">View Demo</a></p>
<h5><a href="http://digwp.com/2009/06/free-theme-wp-typo/">WP Typo</a></h5>
<p><a href="http://digwp.com/2009/06/free-theme-wp-typo/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography2.jpg" alt="Wordpress Typography Themes" width="440" height="583" /></a></p>
<p><a href="http://digwp.com/ThemePlayground/index.php?wptheme=WPTypo">View Demo</a></p>
<h5><a href="http://3oneseven.com/12/typography-wordpress-theme-2/">Typography</a></h5>
<p><a href="http://3oneseven.com/12/typography-wordpress-theme-2/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography3.jpg" alt="Wordpress Typography Themes" width="436" height="591" /></a></p>
<p><a href="http://wp.3oneseven.com/index.php?wptheme=typo">View Demo</a></p>
<h5><a href="http://diythemes.com/thesis/">Thesis Theme</a></h5>
<p><a href="http://diythemes.com/thesis/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography4.jpg" alt="Wordpress Typography Themes" width="430" height="595" /></a></p>
<p><a href="http://diythemes.com/thesis/">View Demo</a></p>
<h5><a href="http://jimbarraud.com/2009/03/19/manifest/">Manifest</a></h5>
<p><a href="http://jimbarraud.com/2009/03/19/manifest/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography5.jpg" alt="Wordpress Typography Themes" width="430" height="578" /></a></p>
<p><a href="http://demo.jimbarraud.com/manifest/">View Demo</a></p>
<h5><a href="http://allancole.com/wordpress/themes/boumatic/">Boumatic</a></h5>
<p><a href="http://allancole.com/wordpress/themes/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography6.jpg" alt="Wordpress Typography Themes" width="416" height="595" /></a></p>
<p><a href="http://allancole.com/themes/index.php?wptheme=Boumatic">View Demo</a></p>
<h5><a href="http://allancole.com/wordpress/themes/neutica/">Neutica</a></h5>
<p><a href="http://allancole.com/wordpress/themes/neutica/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography7.jpg" alt="Wordpress Typography Themes" width="416" height="594" /></a></p>
<p><a href="http://allancole.com/themes/index.php?wptheme=Neutica">View Demo</a></p>
<h5><a href="http://labs.andreamignolo.com/oulipo/">Oulipo</a></h5>
<p><a href="http://labs.andreamignolo.com/oulipo/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography8.jpg" alt="Wordpress Typography Themes" width="435" height="598" /></a></p>
<p><a href="http://labs.andreamignolo.com/oulipo/">View Demo</a></p>
<h5><a href="http://equivocality.com/wu-wei/">Wu Wei</a></h5>
<p><a href="http://equivocality.com/wu-wei/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography9.jpg" alt="Wordpress Typography Themes" width="371" height="587" /></a></p>
<p><a href="http://projects.equivocality.com/wu-wei">View Demo</a></p>
<h5><a href="http://www.upstartblogger.com/wordpress-theme-upstart-blogger-futurosity-magazine">Upstart Blogger Futurosity Magazine</a></h5>
<p><a href="http://www.upstartblogger.com/wordpress-theme-upstart-blogger-futurosity-magazine"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography10.jpg" alt="Wordpress Typography Themes" width="405" height="587" /></a></p>
<p><a href="http://www.upstartblogger.com/wpthemes/">View Demo</a></p>
<h5><a href="http://www.upstartblogger.com/wordpress-theme-upstart-blogger-july07">Upstart Blogger</a></h5>
<p><a href="http://www.upstartblogger.com/wordpress-theme-upstart-blogger-july07"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography11.jpg" alt="Wordpress Typography Themes" width="392" height="604" /></a></p>
<p><a href="http://www.upstartblogger.com/images/july07.jpg">View Demo</a></p>
<h5><a href="http://www.skinpress.com/blackpower-theme/">BlackPower Theme</a></h5>
<p><a href="http://www.skinpress.com/blackpower-theme/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography12.jpg" alt="Wordpress Typography Themes" width="369" height="606" /></a></p>
<p><a href="http://www.skinpress.com/demo/index.php?wptheme=BlackPower">View Demo</a></p>
<h5><a href="http://granimpetu.com/themes-para-wordpress/">Gran Impetu</a></h5>
<p><a href="http://granimpetu.com/themes-para-wordpress/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography13.jpg" alt="Wordpress Typography Themes" width="403" height="600" /></a></p>
<p><a href="http://granimpetu.com/themesdemo">View Demo</a></p>
<h5><a href="http://www.smashingmagazine.com/2008/10/01/simply-ornate-a-free-wordpress-theme/">Simply Ornate</a></h5>
<p><a href="http://www.smashingmagazine.com/2008/10/01/simply-ornate-a-free-wordpress-theme/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography14.jpg" alt="Wordpress Typography Themes" width="437" height="452" /></a></p>
<p><a href="http://honker.evaneckard.com/">View Demo</a></p>
<h5><a href="http://pearsonified.com/theme/neoclassical/">Neoclassical Theme</a></h5>
<p><a href="http://pearsonified.com/theme/neoclassical/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography16.jpg" alt="Wordpress Typography Themes" width="437" height="594" /></a></p>
<p><a href="http://pearsonified.com/theme/neoclassical/">View Demo</a></p>
<h5><a href="http://bizzartic.com/2009/02/10/inuit-types-wordpress-theme/">Inuit Types</a></h5>
<p><a href="http://bizzartic.com/2009/02/10/inuit-types-wordpress-theme/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography17.jpg" alt="Wordpress Typography Themes" width="384" height="588" /></a></p>
<p><a href="http://bizzartic.com/bizzthemes/inuitypes/">View Demo</a></p>
<h5><a href="http://3oneseven.com/22/clear-cut-wordpress-thme/">Clear Cut</a></h5>
<p><a href="http://3oneseven.com/22/clear-cut-wordpress-thme/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography18.jpg" alt="Wordpress Typography Themes" width="411" height="584" /></a></p>
<p><a href="http://wp2.3oneseven.com/">View Demo</a></p>
<h5><a href="http://pupungbp.erastica.com/wordpress-theme/magzine-magazine-style-free-wordpress-theme/">MagZine</a></h5>
<p><a href="http://pupungbp.erastica.com/wordpress-theme/magzine-magazine-style-free-wordpress-theme/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography19.jpg" alt="Wordpress Typography Themes" width="358" height="575" /></a></p>
<p><a href="http://www.designmagz.com/">View Demo</a></p>
<h5><a href="http://divitodesign.com/wordpress-themes/wordpress-theme-spicy-typography/">Spicy Typography</a></h5>
<p><a href="http://divitodesign.com/wordpress-themes/wordpress-theme-spicy-typography/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography20.jpg" alt="Wordpress Typography Themes" width="417" height="592" /></a></p>
<p><a href="http://divitodesign.com/wordpress-themes/wordpress-theme-spicy-typography/">View Demo</a></p>
<h5><a href="http://ableparris.com/2009/03/15/sugar-cane-a-sweet-wordpress-child-theme/">Sugar Cane</a></h5>
<p><a href="http://ableparris.com/2009/03/15/sugar-cane-a-sweet-wordpress-child-theme/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/wptypography21.jpg" alt="Wordpress Typography Themes" width="378" height="587" /></a></p>
<p><a href="http://ableparris.com/sugar-cane/">View Demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2009/08/24/20-free-and-stylish-typography-wordpress-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>30个漂亮的Photoshop按钮和徽章制作</title>
		<link>http://www.helloyi.cn/index.php/2009/08/12/30-useful-photoshop-buttons-and-badges-tutorials/</link>
		<comments>http://www.helloyi.cn/index.php/2009/08/12/30-useful-photoshop-buttons-and-badges-tutorials/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 16:00:43 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>
		<category><![CDATA[Adobe系列]]></category>
		<category><![CDATA[网站素材]]></category>
		<category><![CDATA[网页设计]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=2827</guid>
		<description><![CDATA[有时你的网站设计，会因为一个简单的按钮，而带来不好的用户体验，所以你使其适合您的网站按钮和布局和设计，这样可以帮助你的读者轻松浏览。下面收集了30按钮制作教程希望可以帮助您创建出漂亮的网站界面按钮。
Slick and Clean Button in Photoshop

Glassy Button or Enamel Badge

Micro Bevel Button

Flexible Buttons

Glossy Button

Simple Yet Effective, Clean and Shining Button

Social Networking Chicklets in Photoshop

Small Colorful Buttons

Modern Button in Photoshop

Cool Blue Buttons Tutorial

Pill Button

RSS Button

Clean Web Button

iPhone-like Button

Call To Action Button

Web 2.0 Button

Modern Looking Navigation Button

Create Glassy Button

Photoshop Calculater Button

Simple Button

Simple Button

Basic Sleek Button

Vista Styled Button

Panic [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-thumbnail wp-image-2830 alignleft" title="psbutton1" src="http://www.helloyi.cn/index.php?feedimage=wp-content/uploads/2009/08/psbutton1-150x150.jpg" alt="psbutton1" width="150" height="150" />有时你的网站设计，会因为一个简单的按钮，而带来不好的用户体验，所以你使其适合您的网站按钮和布局和设计，这样可以帮助你的读者轻松浏览。下面收集了30按钮制作教程希望可以帮助您创建出漂亮的网站界面按钮。</p>
<p><span id="more-2827"></span><a href="http://sixrevisions.com/tutorials/photoshop-tutorials/how-to-create-a-slick-and-clean-button-in-photoshop/">Slick and Clean Button in Photoshop</a></p>
<p><a href="http://sixrevisions.com/tutorials/photoshop-tutorials/how-to-create-a-slick-and-clean-button-in-photoshop/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton1.jpg" alt="Photoshop Buttons and Badges Tutorials" width="448" height="249" /></a></p>
<h5><a href="http://www.graphic-design-employment.com/glassy-button-or-enamel-badge.html">Glassy Button or Enamel Badge</a></h5>
<p><a href="http://www.graphic-design-employment.com/glassy-button-or-enamel-badge.html"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton2.jpg" alt="Photoshop Buttons and Badges Tutorials" width="446" height="250" /></a></p>
<h5><a href="http://www.supadupawebdesign.co.uk/tutorials/Adobe-Photoshop-2/Micro-Bevel-Button-28">Micro Bevel Button</a></h5>
<p><a href="http://www.supadupawebdesign.co.uk/tutorials/Adobe-Photoshop-2/Micro-Bevel-Button-28"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton3.jpg" alt="Photoshop Buttons and Badges Tutorials" width="424" height="232" /></a></p>
<h5><a href="http://veerle.duoh.com/blog/comments/creating_flexible_buttons_using_photoshop_shapes_and_styles/">Flexible Buttons</a></h5>
<p><a href="http://veerle.duoh.com/blog/comments/creating_flexible_buttons_using_photoshop_shapes_and_styles/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton4.jpg" alt="Photoshop Buttons and Badges Tutorials" width="383" height="247" /></a></p>
<h5><a href="http://nobstutorials.deviantart.com/art/Glossy-Button-Tutorial-65670723">Glossy Button</a></h5>
<p><a href="http://nobstutorials.deviantart.com/art/Glossy-Button-Tutorial-65670723"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton5.jpg" alt="Photoshop Buttons and Badges Tutorials" width="414" height="247" /></a></p>
<h5><a href="http://www.psdvault.com/web-graphics/design-a-simple-yet-effective-clean-and-shining-button-for-your-website-in-photoshop/">Simple Yet Effective, Clean and Shining Button</a></h5>
<p><a href="http://www.psdvault.com/web-graphics/design-a-simple-yet-effective-clean-and-shining-button-for-your-website-in-photoshop/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton6.jpg" alt="Photoshop Buttons and Badges Tutorials" width="421" height="240" /></a></p>
<h5><a href="http://blulob.com/2009/05/17/create-social-networking-chiclets-photoshop/">Social Networking Chicklets in Photoshop</a></h5>
<p><a href="http://blulob.com/2009/05/17/create-social-networking-chiclets-photoshop/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton7.jpg" alt="Photoshop Buttons and Badges Tutorials" width="422" height="243" /></a></p>
<h5><a href="http://coregfx.org/tutorials/create-small-colorful-buttons-in-photoshop/">Small Colorful Buttons</a></h5>
<p><a href="http://coregfx.org/tutorials/create-small-colorful-buttons-in-photoshop/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton8.jpg" alt="Photoshop Buttons and Badges Tutorials" width="415" height="250" /></a></p>
<h5><a href="http://www.toxiclab.org/tutorial.asp?ID=314">Modern Button in Photoshop</a></h5>
<p><a href="http://www.toxiclab.org/tutorial.asp?ID=314"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton9.jpg" alt="Photoshop Buttons and Badges Tutorials" width="409" height="250" /></a></p>
<h5><a href="http://www.freedivs.com/tutorials/Cool%20Blue%20Buttons/">Cool Blue Buttons Tutorial</a></h5>
<p><a href="http://www.freedivs.com/tutorials/Cool%20Blue%20Buttons/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton10.jpg" alt="Photoshop Buttons and Badges Tutorials" width="394" height="251" /></a></p>
<h5><a href="http://tutorialqueen.com/photoshop-tutorials/photoshop-tutorial-website-pill-button-icon-design-in-photoshop">Pill Button</a></h5>
<p><a href="http://tutorialqueen.com/photoshop-tutorials/photoshop-tutorial-website-pill-button-icon-design-in-photoshop"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton11.jpg" alt="Photoshop Buttons and Badges Tutorials" width="401" height="249" /></a></p>
<h5><a href="http://www.adobetutorialz.com/articles/3008/1/RSS-button">RSS Button</a></h5>
<p><a href="http://www.adobetutorialz.com/articles/3008/1/RSS-button"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton12.jpg" alt="Photoshop Buttons and Badges Tutorials" width="396" height="247" /></a></p>
<h5><a href="http://tutorialtab.net/?p=82">Clean Web Button</a></h5>
<p><a href="http://tutorialtab.net/?p=82"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton13.jpg" alt="Photoshop Buttons and Badges Tutorials" width="411" height="248" /></a></p>
<h5><a href="http://yesterdayishere.com/now/log/iphone-like-button-in-photoshop/">iPhone-like Button</a></h5>
<p><a href="http://yesterdayishere.com/now/log/iphone-like-button-in-photoshop/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton14.jpg" alt="Photoshop Buttons and Badges Tutorials" /></a></p>
<h5><a href="http://www.blog.exxcorpio.com/2009/06/18/beginner-photoshop-tutorial-create-a-call-to-action-button/">Call To Action Button</a></h5>
<p><a href="http://www.blog.exxcorpio.com/2009/06/18/beginner-photoshop-tutorial-create-a-call-to-action-button/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton15.jpg" alt="Photoshop Buttons and Badges Tutorials" /></a></p>
<h5><a href="http://tips.bexinh.cn/photoshop-create-web-20-button/173/">Web 2.0 Button</a></h5>
<p><a href="http://tips.bexinh.cn/photoshop-create-web-20-button/173/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton16.jpg" alt="Photoshop Buttons and Badges Tutorials" width="449" height="249" /></a></p>
<h5><a href="http://www.online-photoshoptutorials.com/2008/04/making-modern-looking-navigation-button.html">Modern Looking Navigation Button</a></h5>
<p><a href="http://www.online-photoshoptutorials.com/2008/04/making-modern-looking-navigation-button.html"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton17.jpg" alt="Photoshop Buttons and Badges Tutorials" width="434" height="250" /></a></p>
<h5><a href="http://digicraft.blogspot.com/2008/04/learn-how-to-creatively-create-glass.html">Create Glassy Button</a></h5>
<p><a href="http://digicraft.blogspot.com/2008/04/learn-how-to-creatively-create-glass.html"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton18.jpg" alt="Photoshop Buttons and Badges Tutorials" /></a></p>
<h5><a href="http://adobeperson.com/photoshop-basic-drawings/photoshop-calculater-button-logo-icon">Photoshop Calculater Button</a></h5>
<p><a href="http://adobeperson.com/photoshop-basic-drawings/photoshop-calculater-button-logo-icon"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton19.jpg" alt="Photoshop Buttons and Badges Tutorials" width="443" height="252" /></a></p>
<h5><a href="http://www.photoshop-garden.com/view_tut.php?id=32">Simple Button</a></h5>
<p><a href="http://www.photoshop-garden.com/view_tut.php?id=32"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton20.jpg" alt="Photoshop Buttons and Badges Tutorials" width="444" height="461" /></a></p>
<h5><a href="http://adobeperson.com/photoshop-basic-drawings/photoshop-business-print-button-logo-icon">Simple Button</a></h5>
<p><a href="http://adobeperson.com/photoshop-basic-drawings/photoshop-business-print-button-logo-icon"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton21.jpg" alt="Photoshop Buttons and Badges Tutorials" width="426" height="232" /></a></p>
<h5><a href="http://psfreak.com/2008/02/13/basic-sleek-button/">Basic Sleek Button</a></h5>
<p><a href="http://psfreak.com/2008/02/13/basic-sleek-button/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton22.jpg" alt="Photoshop Buttons and Badges Tutorials" width="432" height="245" /></a></p>
<h5><a href="http://psfreak.com/2008/02/10/vista-styled-button/">Vista Styled Button</a></h5>
<p><a href="http://psfreak.com/2008/02/10/vista-styled-button/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton23.jpg" alt="Photoshop Buttons and Badges Tutorials" width="427" height="250" /></a></p>
<h5><a href="http://adobeperson.com/photoshop-basic-drawings/design-panic-button-logo-icon-in-photoshop">Panic Button</a></h5>
<p><a href="http://adobeperson.com/photoshop-basic-drawings/design-panic-button-logo-icon-in-photoshop"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton24.jpg" alt="Photoshop Buttons and Badges Tutorials" width="428" height="320" /></a></p>
<h5><a href="http://tutorialagent.com/best-photoshop-tutorials/photoshop-buzline-button-logo-icon">Buzline Button</a></h5>
<p><a href="http://tutorialagent.com/best-photoshop-tutorials/photoshop-buzline-button-logo-icon"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton25.jpg" alt="Photoshop Buttons and Badges Tutorials" width="419" height="243" /></a></p>
<h5><a href="http://www.designtutorials.info/volume-control-widget/">Volume Control Widget</a></h5>
<p><a href="http://www.designtutorials.info/volume-control-widget/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton26.jpg" alt="Photoshop Buttons and Badges Tutorials" width="426" height="254" /></a></p>
<h5><a href="http://psd.tutsplus.com/tutorials/photo-effects-tutorials/photoshop-button-maker/">Photoshop Button Maker</a></h5>
<p><a href="http://psd.tutsplus.com/tutorials/photo-effects-tutorials/photoshop-button-maker/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton27.jpg" alt="Photoshop Buttons and Badges Tutorials" width="422" height="500" /></a></p>
<h5><a href="http://www.photoshopstar.com/web-graphics/nice-simple-subscribe-badges/">Nice ‘n’ Simple Subscribe Badges</a></h5>
<p><a href="http://www.photoshopstar.com/web-graphics/nice-simple-subscribe-badges/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton28.jpg" alt="Photoshop Buttons and Badges Tutorials" width="402" height="199" /></a></p>
<h5><a href="http://www.photoshopstar.com/web-graphics/satisfaction-guaranteed-seal-or-badge/">100% Satisfaction Guaranteed Seal/Badge</a></h5>
<p><a href="http://www.photoshopstar.com/web-graphics/satisfaction-guaranteed-seal-or-badge/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton29.jpg" alt="Photoshop Buttons and Badges Tutorials" width="372" height="190" /></a></p>
<h5><a href="http://www.floatingcitydesigns.com/magazine/2009/01/trendy-sticker-tutorial.html">Trendy Sticker Tutorial</a></h5>
<p><a href="http://www.floatingcitydesigns.com/magazine/2009/01/trendy-sticker-tutorial.html"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton30.jpg" alt="Photoshop Buttons and Badges Tutorials" width="365" height="200" /></a></p>
<h5><a href="http://www.estrellastudios.com/blog/blog-print/print-design-creating-buttons-in-photoshop/">Creating buttons in Photoshop</a></h5>
<p><a href="http://www.estrellastudios.com/blog/blog-print/print-design-creating-buttons-in-photoshop/"><img src="http://speckyboy.com/wp-content/uploads/2009/08/psbutton31.jpg" alt="Photoshop Buttons and Badges Tutorials" width="341" height="199" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2009/08/12/30-useful-photoshop-buttons-and-badges-tutorials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7款优秀的CSS框架</title>
		<link>http://www.helloyi.cn/index.php/2009/06/25/7-css-framework/</link>
		<comments>http://www.helloyi.cn/index.php/2009/06/25/7-css-framework/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 08:40:54 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>
		<category><![CDATA[css/html]]></category>
		<category><![CDATA[javascript/ajax]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=2658</guid>
		<description><![CDATA[推荐7款优秀的CSS框架:

Elements CSS Frameworks
Elements 是一个基础CSS框架，它用来帮助设计者书写CSS更加快捷简单。它不仅是一个框架，它拥有自己的工作流。它拥有你需要完成项目的各种元素，查看介绍：Overview .


YUI Grids CSS 
很不错的框架，基础的YUI Grids CSS提供4种页面宽度，6种边框模板，以及控制行列能力。4kb文件提供了超过1000个页面布局，点击这里查看更多： Other features include:


YAML CSS Framework 
Dirk Jesse的能够对(X)HTML/CSS 框架扩展，支持复杂web项目。YAML基于web标准和支持各种流行浏览器，尤其支持所有IE版本包括从 5.x/Win 到 7.0.


Blueprint CSS
Blueprint是一个CSS框架，它的目标是减少你的CSS开发时间。它提供给你强大的CSS基础来创建你的项目，包括易于使用的grid，有效的字体排版，以及可打印的stylesheet .


Schema Web Design Framework
Schema 是一个展示层web框架，修饰重复的CSS和HTML代码，它提供基础的框架让你能够马上运行项目。


CleverCSS
CleverCSS是一个小型修饰语言用于CSS，从Python得到灵感，采用通过简单和干净的结构方式。 它甚至比CSS2更强大.


Tripoli CSS Framework
Tripoli 是一个一般的CSS标准用于HTML渲染，通过重置和重建浏览器标准。它非常坚固，支持跨浏览器渲染。
]]></description>
			<content:encoded><![CDATA[<p>推荐7款优秀的CSS框架:</p>
<div><a href="http://elements.projectdesigns.org/" target="_blank"><img src="http://hiddenpixels.com/wp-content/uploads/2008/08/css-framework1.gif" border="0" alt="Elements" hspace="3" vspace="3" align="left" /></a></p>
<h3><a href="http://elements.projectdesigns.org/" target="_blank"><span style="color: #006699;">Elements CSS Frameworks</span></a></h3>
<p>Elements 是一个基础CSS框架，它用来帮助设计者书写CSS更加快捷简单。它不仅是一个框架，它拥有自己的工作流。它拥有你需要完成项目的各种元素，查看介绍：<a href="http://elements.projectdesigns.org/overview.html" target="_blank"><span style="color: #006699;">Overview</span></a> .</div>
<p><span id="more-2658"></span><br style="CLEAR: both" /></p>
<div><a href="http://developer.yahoo.com/yui/grids/" target="_blank"><img src="http://hiddenpixels.com/wp-content/uploads/2008/08/css-framework4.gif" border="0" alt="Elements" hspace="3" vspace="3" align="left" /></a></p>
<h3><a href="http://developer.yahoo.com/yui/grids/" target="_blank"><span style="color: #006699;">YUI Grids CSS </span></a></h3>
<p>很不错的框架，基础的YUI Grids CSS提供4种页面宽度，6种边框模板，以及控制行列能力。4kb文件提供了超过1000个页面布局，点击这里查看更多： <a href="http://developer.yahoo.com/yui/grids/" target="_blank"><span style="color: #006699;">Other features include:</span></a></div>
<p><span style="color: #006699;"><br style="CLEAR: both" /></span></p>
<div><a href="http://www.yaml.de/en/home.html" target="_blank"><span style="color: #006699;"><img src="http://hiddenpixels.com/wp-content/uploads/2008/08/css-framework3.gif" border="0" alt="Elements" hspace="3" vspace="3" align="left" /></span></a></p>
<h3><a href="http://www.yaml.de/en/home.html" target="_blank"><span style="color: #006699;">YAML CSS Framework </span></a></h3>
<p>Dirk Jesse的能够对(X)HTML/CSS 框架扩展，支持复杂web项目。YAML基于web标准和支持各种流行浏览器，尤其支持所有IE版本包括从 5.x/Win 到 7.0.</p></div>
<p><br style="CLEAR: both" /></p>
<div><a href="http://code.google.com/p/blueprintcss/" target="_blank"><img src="http://hiddenpixels.com/wp-content/uploads/2008/08/css-framework6.gif" border="0" alt="Elements" hspace="3" vspace="3" align="left" /></a></p>
<h3><a href="http://code.google.com/p/blueprintcss/" target="_blank"><span style="color: #006699;">Blueprint CSS</span></a></h3>
<p>Blueprint是一个CSS框架，它的目标是减少你的CSS开发时间。它提供给你强大的CSS基础来创建你的项目，包括易于使用的grid，有效的字体排版，以及可打印的stylesheet .</p></div>
<p><br style="CLEAR: both" /></p>
<div><a href="http://www.davidgoldingdesign.com/schema.html" target="_blank"><img src="http://hiddenpixels.com/wp-content/uploads/2008/08/css-framework7.gif" border="0" alt="Elements" hspace="3" vspace="3" align="left" /></a></p>
<h3><a href="http://www.davidgoldingdesign.com/schema.html" target="_blank"><span style="color: #006699;">Schema Web Design Framework</span></a></h3>
<p><strong>Schema</strong> 是一个展示层web框架，修饰重复的CSS和HTML代码，它提供基础的框架让你能够马上运行项目。</div>
<p><br style="CLEAR: both" /></p>
<div><a href="http://sandbox.pocoo.org/clevercss/" target="_blank"><img src="http://hiddenpixels.com/wp-content/uploads/2008/08/css-framework8.gif" border="0" alt="Elements" hspace="3" vspace="3" align="left" /></a></p>
<h3><a href="http://sandbox.pocoo.org/clevercss/" target="_blank"><span style="color: #006699;">CleverCSS</span></a></h3>
<p>CleverCSS是一个小型修饰语言用于CSS，从Python得到灵感，采用通过简单和干净的结构方式。 它甚至比CSS2更强大.</p></div>
<p><br style="CLEAR: both" /></p>
<div><a href="http://devkick.com/lab/tripoli/" target="_blank"><img src="http://hiddenpixels.com/wp-content/uploads/2008/08/css-framework9.gif" border="0" alt="Elements" hspace="3" vspace="3" align="left" /></a></p>
<h3><a href="http://devkick.com/lab/tripoli/" target="_blank"><span style="color: #006699;">Tripoli CSS Framework</span></a></h3>
<p>Tripoli 是一个一般的CSS标准用于HTML渲染，通过重置和重建浏览器标准。它非常坚固，支持跨浏览器渲染。</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2009/06/25/7-css-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JS 操作IE游览器常用函数</title>
		<link>http://www.helloyi.cn/index.php/2009/04/06/js-function-ie/</link>
		<comments>http://www.helloyi.cn/index.php/2009/04/06/js-function-ie/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 04:15:17 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>
		<category><![CDATA[css/html]]></category>
		<category><![CDATA[javascript/ajax]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=2405</guid>
		<description><![CDATA[
1、window.external&#8230;



&#60;INPUT onclick=&#8217;window.external.ImportExportFavorites(true,&#8221;http://localhost&#8221;);&#8217; type=button value=导入收藏夹&#62; 
&#60;INPUT onclick=&#8217;window.external.ImportExportFavorites(false,&#8221;http://localhost&#8221;);&#8217; type=button value=导出收藏夹&#62; 
&#60;INPUT onclick=&#8221;window.external.ShowBrowserUI(&#8217;OrganizeFavorites&#8217;, null)&#8221; type=button value=整理收藏夹&#62; 
&#60;INPUT onclick=&#8221;window.external.ShowBrowserUI(&#8217;LanguageDialog&#8217;, null)&#8221; type=button value=语言设置&#62; 
&#60;INPUT onclick=&#8221;window.external.AddFavorite(&#8217;http://blog.csdn.net/Opossum/&#8217;, &#8217;学习，讨论&#8217;)&#8221; type=button value=加入收藏夹&#62; 
&#60;INPUT onclick=&#8221;window.external.addChannel(&#8217;http://blog.csdn.net/Opossum/&#8217;)&#8221; type=button value=加入到频道&#62; 



相关：




&#60;INPUT onclick=&#8221;this.style.behavior=&#8217;url(#default#homepage)&#8217;;this.setHomePage(&#8217;http://blog.csdn.net/Opossum/&#8217;)&#8221; type=button value=设成主页&#62;



2、history&#8230;



&#60;INPUT onclick=history.go(1) type=button value=前进&#62;
&#60;INPUT onclick=history.go(-1) type=button value=后退&#62;
&#60;INPUT onclick=history.forward() type=button value=前进&#62;
&#60;INPUT onclick=history.back() type=button value=后退&#62;



3、document.execCommand&#8230;



&#60;INPUT onclick=&#8221;document.execCommand(&#8217;Cut&#8217;)&#8221; type=button value=剪切&#62;
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;Copy&#8217;)&#8221; type=button value=拷贝&#62;
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;Paste&#8217;)&#8221; type=button value=粘贴&#62; 
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;Undo&#8217;)&#8221; type=button value=撤消&#62;
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;Delete&#8217;)&#8221; type=button value=删除&#62; 
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;Bold&#8217;)&#8221; type=button value=黑体&#62;
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;Italic&#8217;)&#8221; type=button value=斜体&#62;
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;Underline&#8217;)&#8221; type=button value=下划线&#62;
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;stop&#8217;)&#8221; type=button value=停止&#62;
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;SaveAs&#8217;)&#8221; type=button value=保存&#62;
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;Saveas&#8217;,false,&#8217;c:\\test.htm&#8217;)&#8221; type=button value=另存为&#62; 
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;FontName&#8217;,false,fn)&#8221; type=button value=字体&#62; 
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;FontSize&#8217;,false,fs)&#8221; type=button value=字体大小&#62; 
&#60;INPUT onclick=&#8221;document.execCommand(&#8217;refresh&#8217;,false,0)&#8221; type=button value=刷新&#62; 



4、 window.location&#8230;



&#60;INPUT onclick=window.location.reload() type=button value=刷新 name=refresh&#62; 
&#60;INPUT onclick=&#8217;window.location=&#8221;view-source:&#8221; + window.location.href&#8217; type=button value=查看源文件 name=Button7&#62; 



5、WebBrowser.ExecWB&#8230;



&#60;OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0&#62;&#60;/OBJECT&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(2,1) type=button value=关闭所有&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新&#62;&#60;br /&#62;
&#60;input name=Button onClick=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭&#62;



&#60;OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0&#62;&#60;/OBJECT&#62;
是在页面内载入该控件，以便调用该控件的方法，这个classid在系统注册表里是唯一的，如果改了，就可能是别的控件或者是不存在的控件的id了，所以不可以更改
附WebBrowser.ExecWB里面CMDID的参数（自己试一试）：
OLECMDID_OPEN = 1, 
OLECMDID_NEW = 2, 
OLECMDID_SAVE = 3, 
OLECMDID_SAVEAS = 4, 
OLECMDID_SAVECOPYAS = 5, 
OLECMDID_PRINT = 6, 
OLECMDID_PRINTPREVIEW = 7, 
OLECMDID_PAGESETUP = 8, 
OLECMDID_SPELL = 9, 
OLECMDID_PROPERTIES = 10, 
OLECMDID_CUT = 11, 
OLECMDID_COPY = 12, 
OLECMDID_PASTE = 13, 
OLECMDID_PASTESPECIAL = 14, 
OLECMDID_UNDO = 15, 
OLECMDID_REDO = 16, 
OLECMDID_SelectALL = 17, 
OLECMDID_CLEARSelectION = 18, 
OLECMDID_ZOOM = 19, 
OLECMDID_GETZOOMRANGE = 20, 
OLECMDID_UpdateCOMMANDS = 21, 
OLECMDID_REFRESH = 22, 
OLECMDID_STOP = 23, 
OLECMDID_HIDETOOLBARS = 24, 
OLECMDID_SETPROGRESSMAX = 25, 
OLECMDID_SETPROGRESSPOS = 26, 
OLECMDID_SETPROGRESSTEXT = 27, 
OLECMDID_SETTITLE = 28, 
OLECMDID_SETDOWNLOADSTATE = 29, 
OLECMDID_STOPDOWNLOAD = 30, 
OLECMDID_ONTOOLBARACTIVATED = 31, 
OLECMDID_FIND = 32, 
OLECMDID_Delete = 33, 
OLECMDID_HTTPEQUIV = 34, 
OLECMDID_HTTPEQUIV_DONE = 35, 
OLECMDID_ENABLE_INTERACTION = 36, 
OLECMDID_ONUNLOAD = 37, 
OLECMDID_PROPERTYBAG2 = 38, 
OLECMDID_PREREFRESH = 39, 
OLECMDID_SHOWSCRIPTERROR = 40, 
OLECMDID_SHOWMESSAGE = 41, 
OLECMDID_SHOWFIND = 42, 
OLECMDID_SHOWPAGESETUP = 43, 
OLECMDID_SHOWPRINT = 44, 
OLECMDID_CLOSE = 45, 
OLECMDID_ALLOWUILESSSAVEAS = 46, 
OLECMDID_DONTDOWNLOADCSS = 47, 
OLECMDID_UpdatePAGESTATUS = 48, 
OLECMDID_PRINT2 = 49, 
OLECMDID_PRINTPREVIEW2 = 50, 
OLECMDID_SETPRINTTEMPLATE = 51, 
OLECMDID_GETPRINTTEMPLATE = 52, 
OLECMDID_PAGEACTIONBLOCKED = 55,
OLECMDID_PAGEACTIONUIQUERY = 56,
OLECMDID_FOCUSVIEWCONTROLS = 57,
OLECMDID_FOCUSVIEWCONTROLSQUERY = 58
OLECMDID_SHOWPAGEACTIONMENU = 59
摘要：原文地址：http://www.okajax.com/a/200808/0R2O952008.html
]]></description>
			<content:encoded><![CDATA[<div class="m_l_cont_text">
<p>1、window.external&#8230;</p>
<table style="table-layout: fixed; border: #cccccc 1px dotted;" border="0" cellspacing="0" cellpadding="6" width="95%" align="center">
<tbody>
<tr>
<td style="word-wrap: break-word;" bgcolor="#fdfddf"><span style="color: #ff0000;"><span style="color: #000000;">&lt;INPUT onclick=&#8217;window.external.ImportExportFavorites(true,&#8221;http://localhost&#8221;);&#8217; type=button value=导入收藏夹&gt; <br />
&lt;INPUT onclick=&#8217;window.external.ImportExportFavorites(false,&#8221;http://localhost&#8221;);&#8217; type=button value=导出收藏夹&gt; <br />
&lt;INPUT onclick=&#8221;window.external.ShowBrowserUI(&#8217;OrganizeFavorites&#8217;, null)&#8221; type=button value=整理收藏夹&gt; <br />
&lt;INPUT onclick=&#8221;window.external.ShowBrowserUI(&#8217;LanguageDialog&#8217;, null)&#8221; type=button value=语言设置&gt; <br />
&lt;INPUT onclick=&#8221;window.external.AddFavorite(&#8217;http://blog.csdn.net/Opossum/&#8217;, &#8217;学习，讨论&#8217;)&#8221; type=button value=加入收藏夹&gt; <br />
&lt;INPUT onclick=&#8221;window.external.addChannel(&#8217;http://blog.csdn.net/Opossum/&#8217;)&#8221; type=button value=加入到频道&gt; </span></span></td>
</tr>
</tbody>
</table>
<p>相关：</p>
<p><span id="more-2405"></span></p>
<table style="table-layout: fixed; border: #cccccc 1px dotted;" border="0" cellspacing="0" cellpadding="6" width="95%" align="center">
<tbody>
<tr>
<td style="word-wrap: break-word;" bgcolor="#fdfddf"><span style="color: #ff0000;"><span style="color: #000000;">&lt;INPUT onclick=&#8221;this.style.behavior=&#8217;url(#default#homepage)&#8217;;this.setHomePage(&#8217;http://blog.csdn.net/Opossum/&#8217;)&#8221; type=button value=设成主页&gt;</span></span></td>
</tr>
</tbody>
</table>
<p>2、history&#8230;</p>
<table style="table-layout: fixed; border: #cccccc 1px dotted;" border="0" cellspacing="0" cellpadding="6" width="95%" align="center">
<tbody>
<tr>
<td style="word-wrap: break-word;" bgcolor="#fdfddf"><span style="color: #ff0000;"><span style="color: #000000;">&lt;INPUT onclick=history.go(1) type=button value=前进&gt;<br />
&lt;INPUT onclick=history.go(-1) type=button value=后退&gt;<br />
&lt;INPUT onclick=history.forward() type=button value=前进&gt;<br />
&lt;INPUT onclick=history.back() type=button value=后退&gt;</span></span></td>
</tr>
</tbody>
</table>
<p>3、document.execCommand&#8230;</p>
<table style="table-layout: fixed; border: #cccccc 1px dotted;" border="0" cellspacing="0" cellpadding="6" width="95%" align="center">
<tbody>
<tr>
<td style="word-wrap: break-word;" bgcolor="#fdfddf"><span style="color: #ff0000;"><span style="color: #000000;">&lt;INPUT onclick=&#8221;document.execCommand(&#8217;Cut&#8217;)&#8221; type=button value=剪切&gt;<br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;Copy&#8217;)&#8221; type=button value=拷贝&gt;<br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;Paste&#8217;)&#8221; type=button value=粘贴&gt; <br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;Undo&#8217;)&#8221; type=button value=撤消&gt;<br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;Delete&#8217;)&#8221; type=button value=删除&gt; <br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;Bold&#8217;)&#8221; type=button value=黑体&gt;<br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;Italic&#8217;)&#8221; type=button value=斜体&gt;<br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;Underline&#8217;)&#8221; type=button value=下划线&gt;<br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;stop&#8217;)&#8221; type=button value=停止&gt;<br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;SaveAs&#8217;)&#8221; type=button value=保存&gt;<br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;Saveas&#8217;,false,&#8217;c:\\test.htm&#8217;)&#8221; type=button value=另存为&gt; <br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;FontName&#8217;,false,fn)&#8221; type=button value=字体&gt; <br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;FontSize&#8217;,false,fs)&#8221; type=button value=字体大小&gt; <br />
&lt;INPUT onclick=&#8221;document.execCommand(&#8217;refresh&#8217;,false,0)&#8221; type=button value=刷新&gt; </span></span></td>
</tr>
</tbody>
</table>
<p>4、 window.location&#8230;</p>
<table style="table-layout: fixed; border: #cccccc 1px dotted;" border="0" cellspacing="0" cellpadding="6" width="95%" align="center">
<tbody>
<tr>
<td style="word-wrap: break-word;" bgcolor="#fdfddf">&lt;INPUT onclick=window.location.reload() type=button value=刷新 name=refresh&gt; <br />
&lt;INPUT onclick=&#8217;window.location=&#8221;view-source:&#8221; + window.location.href&#8217; type=button value=查看源文件 name=Button7&gt; </td>
</tr>
</tbody>
</table>
<p>5、WebBrowser.ExecWB&#8230;</p>
<table style="table-layout: fixed; border: #cccccc 1px dotted;" border="0" cellspacing="0" cellpadding="6" width="95%" align="center">
<tbody>
<tr>
<td style="word-wrap: break-word;" bgcolor="#fdfddf"><span style="color: #ff0000;"><span style="color: #000000;">&lt;OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0&gt;&lt;/OBJECT&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(2,1) type=button value=关闭所有&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新&gt;&lt;br /&gt;<br />
&lt;input name=Button onClick=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭&gt;</span></span></td>
</tr>
</tbody>
</table>
<p>&lt;OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0&gt;&lt;/OBJECT&gt;</p>
<p>是在页面内载入该控件，以便调用该控件的方法，这个classid在系统注册表里是唯一的，如果改了，就可能是别的控件或者是不存在的控件的id了，所以不可以更改</p>
<p>附WebBrowser.ExecWB里面CMDID的参数（自己试一试）：<span class="Code"></p>
<p>OLECMDID_OPEN = 1, <br />
OLECMDID_NEW = 2, <br />
OLECMDID_SAVE = 3, <br />
OLECMDID_SAVEAS = 4, <br />
OLECMDID_SAVECOPYAS = 5, <br />
OLECMDID_PRINT = 6, <br />
OLECMDID_PRINTPREVIEW = 7, <br />
OLECMDID_PAGESETUP = 8, <br />
OLECMDID_SPELL = 9, <br />
OLECMDID_PROPERTIES = 10, <br />
OLECMDID_CUT = 11, <br />
OLECMDID_COPY = 12, <br />
OLECMDID_PASTE = 13, <br />
OLECMDID_PASTESPECIAL = 14, <br />
OLECMDID_UNDO = 15, <br />
OLECMDID_REDO = 16, <br />
OLECMDID_SelectALL = 17, <br />
OLECMDID_CLEARSelectION = 18, <br />
OLECMDID_ZOOM = 19, <br />
OLECMDID_GETZOOMRANGE = 20, <br />
OLECMDID_UpdateCOMMANDS = 21, <br />
OLECMDID_REFRESH = 22, <br />
OLECMDID_STOP = 23, <br />
OLECMDID_HIDETOOLBARS = 24, <br />
OLECMDID_SETPROGRESSMAX = 25, <br />
OLECMDID_SETPROGRESSPOS = 26, <br />
OLECMDID_SETPROGRESSTEXT = 27, <br />
OLECMDID_SETTITLE = 28, <br />
OLECMDID_SETDOWNLOADSTATE = 29, <br />
OLECMDID_STOPDOWNLOAD = 30, <br />
OLECMDID_ONTOOLBARACTIVATED = 31, <br />
OLECMDID_FIND = 32, <br />
OLECMDID_Delete = 33, <br />
OLECMDID_HTTPEQUIV = 34, <br />
OLECMDID_HTTPEQUIV_DONE = 35, <br />
OLECMDID_ENABLE_INTERACTION = 36, <br />
OLECMDID_ONUNLOAD = 37, <br />
OLECMDID_PROPERTYBAG2 = 38, <br />
OLECMDID_PREREFRESH = 39, <br />
OLECMDID_SHOWSCRIPTERROR = 40, <br />
OLECMDID_SHOWMESSAGE = 41, <br />
OLECMDID_SHOWFIND = 42, <br />
OLECMDID_SHOWPAGESETUP = 43, <br />
OLECMDID_SHOWPRINT = 44, <br />
OLECMDID_CLOSE = 45, <br />
OLECMDID_ALLOWUILESSSAVEAS = 46, <br />
OLECMDID_DONTDOWNLOADCSS = 47, <br />
OLECMDID_UpdatePAGESTATUS = 48, <br />
OLECMDID_PRINT2 = 49, <br />
OLECMDID_PRINTPREVIEW2 = 50, <br />
OLECMDID_SETPRINTTEMPLATE = 51, <br />
OLECMDID_GETPRINTTEMPLATE = 52, <br />
OLECMDID_PAGEACTIONBLOCKED = 55,<br />
OLECMDID_PAGEACTIONUIQUERY = 56,<br />
OLECMDID_FOCUSVIEWCONTROLS = 57,<br />
OLECMDID_FOCUSVIEWCONTROLSQUERY = 58<br />
OLECMDID_SHOWPAGEACTIONMENU = 59</span></p>
<p><span class="Code"><span class="fa"><span style="font-size: x-small; color: #cc0000;">摘要：</span></span>原文地址：http://www.okajax.com/a/200808/0R2O952008.html</span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2009/04/06/js-function-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用 jQuery- 将桌面应用程序引入浏览器</title>
		<link>http://www.helloyi.cn/index.php/2008/12/29/jquery-explorer/</link>
		<comments>http://www.helloyi.cn/index.php/2008/12/29/jquery-explorer/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 14:26:16 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>
		<category><![CDATA[javascript/ajax]]></category>
		<category><![CDATA[分享]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=1970</guid>
		<description><![CDATA[    jQuery 逐渐从其他 JavaScript 库选择中脱颖而出，并且成为 Web 开发人员的最佳选择。它迅速成为希望简化客户端开发和快速高效地创建富 Internet 应用程序（RIA）的程序员的首选。随着 RIA 的广泛使用，将越来越多地使用 JavaScript 库协助开发。RIA 被定义（松散地）为通过浏览器运行的应用程序，这种浏览器结合使用 CSS/JavaScript/Ajax 创建类似桌面应用程序的外观。Firefox、Internet Explorer 和 Safari 最新发行版中新增的特性，以及 Google 新 Chrome 浏览器最近的版本，都专注于加快每个浏览器的内部 JavaScript 引擎的速度，其惟一目的是更加适应浏览器制造商为未来设计的 RIA。这些公司认为未来的 Web 页面将包含大量 JavaScript 代码，因此首先开发一个成熟的、没有 bug 的库是非常重要的。
  因此，随着未来 Web 应用程序不断朝富沉浸式界面（rich and immersive interface）的方向发展，Web 开发人员不断地寻找可以简化这些工作的工具。现在已经有几个 JavaScript 库，每个库都有各自的优点和缺点，同时也有各自的支持者和反对者。在这里，我不讨论哪个库的特性更好，因为这对最终结果没有多大影响。最重要的是哪个库使用得更多 — 数量才是最重要的。看看下面 4 个最流行的 JavaScript 库的 Google 趋势图。很明显，在过去 6 到 8 个月里，jQuery 成为主导的 [...]]]></description>
			<content:encoded><![CDATA[<p>    jQuery 逐渐从其他 JavaScript 库选择中脱颖而出，并且成为 Web 开发人员的最佳选择。它迅速成为希望简化客户端开发和快速高效地创建富 Internet 应用程序（RIA）的程序员的首选。随着 RIA 的广泛使用，将越来越多地使用 JavaScript 库协助开发。RIA 被定义（松散地）为通过浏览器运行的应用程序，这种浏览器结合使用 CSS/<a href="http://www.helloyi.cn/index.php/tag/javascriptajax/" class="st_tag internal_tag" rel="tag nofollow" title="标签 javascript/ajax 下的日志">JavaScript/Ajax</a> 创建类似桌面应用程序的外观。Firefox、Internet Explorer 和 Safari 最新发行版中新增的特性，以及 Google 新 Chrome 浏览器最近的版本，都专注于加快每个浏览器的内部 JavaScript 引擎的速度，其惟一目的是更加适应浏览器制造商为未来设计的 RIA。这些公司认为未来的 Web 页面将包含大量 JavaScript 代码，因此首先开发一个成熟的、没有 bug 的库是非常重要的。</p>
<p><span id="more-1970"></span>  因此，随着未来 Web 应用程序不断朝富沉浸式界面（rich and immersive interface）的方向发展，Web 开发人员不断地寻找可以简化这些工作的工具。现在已经有几个 JavaScript 库，每个库都有各自的优点和缺点，同时也有各自的支持者和反对者。在这里，我不讨论哪个库的特性更好，因为这对最终结果没有多大影响。最重要的是哪个库使用得更多 — 数量才是最重要的。看看下面 4 个最流行的 JavaScript 库的 Google 趋势图。很明显，在过去 6 到 8 个月里，jQuery 成为主导的 JavaScript 库，并且这一趋势仍在上升。</p>
<p><a href="http://www.ibm.com/developerworks/cn/web/wa-jquery1/">点击查看原文</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2008/12/29/jquery-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>注册申请帐号时强迫用户在一定时间内看注意事项的JS代码</title>
		<link>http://www.helloyi.cn/index.php/2008/11/16/js-time/</link>
		<comments>http://www.helloyi.cn/index.php/2008/11/16/js-time/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 13:47:13 +0000</pubDate>
		<dc:creator>好易阁</dc:creator>
				<category><![CDATA[WEB前端应用]]></category>
		<category><![CDATA[javascript/ajax]]></category>

		<guid isPermaLink="false">http://www.helloyi.cn/?p=1390</guid>
		<description><![CDATA[&#60;body&#62;
&#60;FORM action=login.php?job=register method=post name=agree&#62;
&#60;CENTER&#62;&#60;INPUT name=agreeb type=submit value=&#8221;请认真查看&#60;服务条款和声明&#62; (15 秒后继续)&#8221;&#62;　　
&#60;INPUT onclick=history.back(-1) type=reset value=&#8221; 我 不 同 意 &#8220;&#62;
&#60;/CENTER&#62;&#60;/form&#62;
&#60;SCRIPT language=javascript&#62;
&#60;!&#8211;
var secs = 15;
document.agree.agreeb.disabled=true;
for(i=1;i&#60;=secs;i++) &#38;#123;
 window.setTimeout(&#8221;update(&#8221; + i + &#8220;)&#8221;, i * 1000);
&#38;#125;
function update(num) &#38;#123;
 if(num == secs) &#38;#123;
 document.agree.agreeb.value =&#8221; 我 同 意 &#8220;;
 document.agree.agreeb.disabled=false;
 &#38;#125;
else &#38;#123;
 printnr = secs-num;
document.agree.agreeb.value = &#8220;请认真查看&#60;服务条款和声明&#62; (&#8221; + printnr +&#8221; 秒后继续)&#8221;;
&#38;#125;
&#38;#125;
//&#8211;&#62;
&#60;/SCRIPT&#62;
&#60;script type=&#8217;text/javascript&#8217;&#62;
//&#60;![CDATA[
if (document.getElementById('processtime')) document.getElementById('processtime').innerHTML="&#60;span class='runtimedisplay'&#62;Run in 179 [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #0000ff;">&lt;body&gt;<br />
&lt;FORM action=login.php?job=register method=post name=agree&gt;<br />
&lt;CENTER&gt;&lt;INPUT name=agreeb type=submit value=&#8221;请认真查看&lt;服务条款和声明&gt; (15 秒后继续)&#8221;&gt;　　<br />
&lt;INPUT onclick=history.back(-1) type=reset value=&#8221; 我 不 同 意 &#8220;&gt;<br />
&lt;/CENTER&gt;&lt;/form&gt;<br />
&lt;SCRIPT language=javascript&gt;<br />
&lt;!&#8211;<br />
var secs = 15;<br />
document.agree.agreeb.disabled=true;<br />
for(i=1;i&lt;=secs;i++) &amp;#123;<br />
 window.setTimeout(&#8221;update(&#8221; + i + &#8220;)&#8221;, i * 1000);<br />
&amp;#125;<br />
function update(num) &amp;#123;<br />
 if(num == secs) &amp;#123;<br />
 document.agree.agreeb.value =&#8221; 我 同 意 &#8220;;<br />
 document.agree.agreeb.disabled=false;<br />
 &amp;#125;<br />
else &amp;#123;<br />
 printnr = secs-num;</span></p>
<p><span style="color: #0000ff;"><span id="more-1390"></span>document.agree.agreeb.value = &#8220;请认真查看&lt;服务条款和声明&gt; (&#8221; + printnr +&#8221; 秒后继续)&#8221;;<br />
&amp;#125;<br />
&amp;#125;<br />
//&#8211;&gt;<br />
&lt;/SCRIPT&gt;<br />
&lt;script type=&#8217;text/javascript&#8217;&gt;<br />
//&lt;![CDATA[<br />
if (document.getElementById('processtime')) document.getElementById('processtime').innerHTML="&lt;span class='runtimedisplay'&gt;Run in 179 ms, 8 Queries, Gzip enabled.&lt;/span&gt;";<br />
//]]&gt;<br />
&lt;/script&gt;&lt;/body&gt;<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.helloyi.cn/index.php/2008/11/16/js-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
