<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_可惜我是程序猿</title><subtitle type="text">好的代码像首诗，烂的代码像坨屎</subtitle><id>http://feed.cnblogs.com/blog/u/84407/rss</id><updated>2012-05-28T06:44:14Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/84407/rss"/><entry><id>http://www.cnblogs.com/hooray/archive/2012/05/28/2521330.html</id><title type="text">我和我的HoorayOS</title><summary type="text">HoorayOS是我在我去年8月份开始构想，9月份开始编写的一个开源的web桌面类应用框架。它的前身是EonerCMS，因为那会公司准备重新开发自己的CMS系统，以应用于一些中小型的网站，于是也就有了这片文章《关于CMS后台展示/操作方式的个人拙见》 直到今年2月，我正式将作品开源，其目的有二，一是因为我觉得差不多可以拿出手了，该有的功能差不多完整了，即时有缺少，比如文件夹、多桌面、应用码头（这些功能在最新版本里都已实现），但这已经不影响一个系统的正常使用了，已经具备二次开发的条件了，其二就是毕竟开发快半年了，自己的毅力有点变弱，我不是一个很高尚的人，所以我很渴望能通过HoorayOS给...</summary><published>2012-05-28T06:44:00Z</published><updated>2012-05-28T06:44:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/05/28/2521330.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/05/28/2521330.html"/><content type="html">&lt;p&gt;HoorayOS是我在我去年8月份开始构想，9月份开始编写的一个开源的web桌面类应用框架。它的前身是EonerCMS，因为那会公司准备重新开发自己的CMS系统，以应用于一些中小型的网站，于是也就有了这片文章《&lt;a href="http://www.cnblogs.com/hooray/archive/2011/08/01/2123330.html" target="_blank"&gt;关于CMS后台展示/操作方式的个人拙见&lt;/a&gt;》&lt;/p&gt;&lt;p&gt;直到今年2月，我正式将作品开源，其目的有二，一是因为我觉得差不多可以拿出手了，该有的功能差不多完整了，即时有缺少，比如文件夹、多桌面、应用码头（这些功能在最新版本里都已实现），但这已经不影响一个系统的正常使用了，已经具备二次开发的条件了，其二就是毕竟开发快半年了，自己的毅力有点变弱，我不是一个很高尚的人，所以我很渴望能通过HoorayOS给我的生活带点收入，不用太多，至少能证明我这半年的努力不是一场闹剧。&lt;/p&gt;&lt;p&gt;开源后我把框架改名叫HoorayOS，因为近半年的开发，我发现这种模式不能局限于CMS，因为这种web桌面式的操作模式如果用在后台，那就大大失去了它的魅力，所以我将它改名，并美其名曰叫框架，因为我不做太多的功能，个性化的功能我一律摒弃，我只做框架本身可能会涉及到的功能。这样可以方便二次开发人员专注于系统开发，而不是修改框架。&lt;/p&gt;&lt;p&gt;开源后，得到了大部分人的支持，但这名字也惹来了一些人的吐槽。至今我也很后悔当初改名叫Hooray Desktop会不会更好，毕竟OS这个饼画的太大了，大到我自己都有点吃不下。&lt;/p&gt;&lt;p&gt;开源后的那一阵子，动力还是挺足的。原因在于有很多人联系我，说想和我合作，帮他们二次开发系统，因为工作原因，大部分我还是推了，因为二次开发的项目太大，加上我不能全职开发，只能抽下班时间进行开发，开发周期比正常开发要长一倍左右，所以只接了几个简单定制的系统，因为功能不多，加上价钱合理，顺理成章的就接了。那段时间是美好的，有人为你的梦想买单，我相信那种感觉你也有过。&lt;/p&gt;&lt;p&gt;开源让我得到了好多，不仅仅是物质上的。我建了QQ群，吸引了很多HoorayOS爱好者，大家提了很多意见，发现了很多bug，为了后期更新版本减少了很大工作量，让我能听取更多方面的意见，融会贯通之后整理出合适的方案，再进行开发，同时还不用我测试，新版本上线都会有一帮人在测试。开源让我的开发效率提升了一个档次，这要换在以前，在制作新功能前，要一个人想好久；开发好后，又要一个个浏览器去测试。&lt;/p&gt;&lt;p&gt;至今，HoorayOS已经更新了4个版本了，后续框架基本的功能大致都完善好后，我将会考虑引入第三方的产品，比如网盘，因为框架本身很难做到这类功能，通过第三方的api进行连接，以插件的形式接入，让开发者想使用的时候只需修改一个参数就可以实现各种不同的第三方api，大大提高开发效率。&lt;/p&gt;&lt;p&gt;HoorayOS具体能走多远我不知道，但我知道它是我第一个正式的作品，我希望让大家都知道它，因为它承载着我的一个未完成的梦想。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2521330.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/05/28/2521330.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hooray/archive/2012/05/20/2510989.html</id><title type="text">【HoorayOS】开源的Web桌面应用框架（第四版 v120520）</title><summary type="text">经过大量自愿者的BUG提交，建议讨论之后，迎来了第四版。让我们一起来看看第三版更新了哪些新功能吧。桌面翻页功能图标排列模式选择修改应用打开模式首次加载图标只获取桌面需要的数据，图标对应应用窗口的数据在点击打开图标的时候再进行远程获取，提速的同时可以同时在打开应用窗口前验证用户是否安装改应用桌面滚动条代码模块细化归类更多注释必要时提供图形化注释，方便学习及二次开发更多常用桌面API接口，方便二次开发模块 每次小更新我都会在微博上发布，欢迎@可惜我是胡尐睿丶 更多小bug的修复就不一一描述了，以下是测试地址。 演示站：http://www.hoorayos.com/ HoorayOS介...</summary><published>2012-05-20T15:21:00Z</published><updated>2012-05-20T15:21:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/05/20/2510989.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/05/20/2510989.html"/><content type="html">&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012022922332451.jpg" alt="" width="800" height="300" /&gt;&lt;/p&gt;&lt;p&gt;经过大量自愿者的BUG提交，建议讨论之后，迎来了第四版。让我们一起来看看第三版更新了哪些新功能吧。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;桌面翻页功能&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012052023112959.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;图标排列模式选择&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012052023131757.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;修改应用打开模式&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;首次加载图标只获取桌面需要的数据，图标对应应用窗口的数据在点击打开图标的时候再进行远程获取，提速的同时可以同时在打开应用窗口前验证用户是否安装改应用&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012052023150546.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;桌面滚动条&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012052023162469.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;代码模块细化归类&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012052023173430.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;更多注释&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;必要时提供图形化注释，方便学习及二次开发&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012052023183539.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;更多常用桌面API接口，方便二次开发模块&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012052023191892.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;每次小更新我都会在微博上发布，欢迎&lt;a href="http://weibo.com/318577790" target="_blank"&gt;@可惜我是胡尐睿丶&lt;/a&gt;&lt;/p&gt;&lt;p&gt;更多小bug的修复就不一一描述了，以下是测试地址。&lt;/p&gt;&lt;p&gt;演示站：&lt;a href="http://www.hoorayos.com/"&gt;http://www.hoorayos.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;HoorayOS介绍及下载：&lt;a href="http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html" target="_blank"&gt;http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://files.cnblogs.com/hooray/qiangzhiguanzhu.js"&gt;&lt;/script&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2510989.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/05/20/2510989.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hooray/archive/2012/05/02/2478735.html</id><title type="text">【HoorayOS】开源的Web桌面应用框架——安装部署</title><summary type="text">最近有很多人反应HoorayOS在安装上出问题，无法顺利安装成功，为此，我特地单独开篇日志，用户安装问题汇总，并在直接在文内解答，如果后续出现新的安装问题，该日志会及时更新。 首先是整个安装流程，下载HoorayOS：http://code.google.com/p/hoorayos/downloads/list php，mysql环境安装，如果你有能力单独一个个安装，可以直接跳过这一步。这里我推荐使用WampServer，其他php集成安装环境各自做参考。 安装步骤就不截图了，基本上都是“下一步”式的无脑安装。 安装完毕后会发现桌面上有了一个快捷方式，双击运行后在桌面右下角就会出...</summary><published>2012-05-02T03:29:00Z</published><updated>2012-05-02T03:29:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/05/02/2478735.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/05/02/2478735.html"/><content type="html">&lt;script type="text/javascript" src="http://files.cnblogs.com/hooray/qiangzhiguanzhu.js"&gt;&lt;/script&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012022922332451.jpg" alt="" width="800" height="300" /&gt;&lt;/p&gt;&lt;p&gt;最近有很多人反应HoorayOS在安装上出问题，无法顺利安装成功，为此，我特地单独开篇日志，用户安装问题汇总，并在直接在文内解答，如果后续出现新的安装问题，该日志会及时更新。&lt;/p&gt;&lt;p&gt;首先是整个安装流程，下载HoorayOS：&lt;a href="http://code.google.com/p/hoorayos/downloads/list"&gt;http://code.google.com/p/hoorayos/downloads/list&lt;/a&gt;&lt;/p&gt;&lt;p&gt;php，mysql环境安装，如果你有能力单独一个个安装，可以直接跳过这一步。这里我推荐使用&lt;a href="http://www.wampserver.com/en/" target="_blank"&gt;WampServer&lt;/a&gt;，其他php集成安装环境各自做参考。&lt;/p&gt;&lt;p&gt;安装步骤就不截图了，基本上都是&amp;ldquo;下一步&amp;rdquo;式的无脑安装。&lt;/p&gt;&lt;p&gt;安装完毕后会发现桌面上有了一个快捷方式，双击运行后在桌面右下角就会出现这个图标。&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050210540679.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;然后我们右键它，可以在&amp;ldquo;Language&amp;rdquo;里面找到&amp;ldquo;chinese&amp;rdquo;，这样就是中文版的了，然后我们再左键它，选择最后一项&amp;ldquo;切换到在线状态&amp;rdquo;。&lt;/p&gt;&lt;p&gt;OK，php集成环境到此就安装完毕了，下面我们开始部署&lt;a href="http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html" target="_blank"&gt;HoorayOS&lt;/a&gt;。解压压缩包，一共2个文件，一个hoorayos文件夹，一个hoorayos.sql数据库文件，我们把hoorayos文件夹放到www目录下&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050211001411.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;然后我们找到&amp;ldquo;inc/setting.inc.php&amp;rdquo;文件，打开，找到这一行&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050211020041.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;设置数据库链接属性，基本上是不用修改的，因为wamp的mysql密码默认为空。&lt;/p&gt;&lt;p&gt;接下来我们需要导入数据库，这里我用phpmyadmin做演示，同样通过wamp打开phpmyadmin页面。找到&amp;ldquo;数据库--新建&amp;rdquo;，注意编码选择。&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050211054057.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;创建成功后，点击进入我们新建的库，选择导入&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050211080956.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;OK，不会有问题，如果出问题请检查之间步骤操作是否有误。&lt;/p&gt;&lt;p&gt;至此，环境及项目的部署到此完毕，我们可以打开网站看下是否能正常访问。通过wamp进入&amp;ldquo;Localhost&amp;rdquo;，找到你的项目&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050211104810.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;点击进入，什么？！你也看到报错页面了，那就对了，让我们来看看出了什么错&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050211144861.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;undefined index，如果有点php基础的人肯定就明白了，出现上面这些是PHP的提示而非报错，PHP本身不需要事先声明变量即可直接使用，但是对未声明变量会有提示。一般作为正式的网站会把提示关掉的，甚至连错误信息也被关掉。关闭方法就是在php.ini（点击wamp，选择php，找到php.ini）里找到&amp;ldquo;error_reporting = E_ALL&amp;rdquo;，修改成&amp;ldquo;error_reporting = E_ALL &amp;amp; ~E_NOTICE &amp;amp; ~E_STRICT&amp;rdquo;即可，然后保存，重启wamp（wamp里面有个&amp;ldquo;重新启动所有服务&amp;rdquo;的选项，点那个就行）&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050211181218.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;重启后再运行发现页面上还是有问题，提示&amp;ldquo;&lt;span&gt;could not find driver&lt;/span&gt;&amp;rdquo;，这是因为HoorayOS使用的PDO链接数据库，需要在php里把对应的扩展打开，所以还是打开php.ini文件，找到&amp;ldquo;;extension=php_pdo_mysql.dll&amp;rdquo;，把开头的分号去掉，保存，重启。&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050211233219.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;再次访问，OK，看到久违的登入界面了&amp;hellip;&amp;hellip;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012050211244116.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;如果还有问题，请在下面回复，能力范围内，我会尽量解答。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2478735.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/05/02/2478735.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hooray/archive/2012/04/21/2461085.html</id><title type="text">【HoorayOS】开源的Web桌面应用框架（第三版 v120421）</title><summary type="text">经过大量自愿者的BUG提交，建议讨论之后，迎来了第三版。让我们一起来看看第三版更新了哪些新功能吧。文件夹模块全新任务栏应用全屏按钮新手引导界面 更多小bug的修复就不一一描述了，以下是测试地址。 演示站：http://www.hoorayos.com/ HoorayOS介绍及下载：http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html</summary><published>2012-04-21T02:44:00Z</published><updated>2012-04-21T02:44:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/04/21/2461085.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/04/21/2461085.html"/><content type="html">&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012022922332451.jpg" alt="" width="800" height="300" /&gt;&lt;/p&gt;&lt;p&gt;经过大量自愿者的BUG提交，建议讨论之后，迎来了第三版。让我们一起来看看第三版更新了哪些新功能吧。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;文件夹模块&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012042110362659.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;全新任务栏&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012042110381164.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;应用全屏按钮&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012042110395636.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;新手引导界面&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012042110405683.jpg" alt="" width="800" /&gt;&lt;/p&gt;&lt;p&gt;更多小bug的修复就不一一描述了，以下是测试地址。&lt;/p&gt;&lt;p&gt;演示站：&lt;a href="http://www.hoorayos.com/"&gt;http://www.hoorayos.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;HoorayOS介绍及下载：&lt;a href="http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html" target="_blank"&gt;http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://files.cnblogs.com/hooray/qiangzhiguanzhu.js"&gt;&lt;/script&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2461085.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/04/21/2461085.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hooray/archive/2012/04/14/2446593.html</id><title type="text">一个支持chrome、firefox的全屏插件</title><summary type="text">话不多说，直接上demo，你可以点击下面的图片看效果。 插件代码(function(){ var fullScreenApi = { supportsFullScreen: false, isFullScreen: function() { return false; }, requestFullScreen: function() {}, cancelFullScreen: function() {}, fullScreenEventName: '', ...</summary><published>2012-04-13T16:22:00Z</published><updated>2012-04-13T16:22:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/04/14/2446593.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/04/14/2446593.html"/><content type="html">&lt;p&gt;话不多说，直接上demo，你可以点击下面的图片看效果。&lt;/p&gt;&lt;p&gt;&lt;a id="fullscreenbtn"&gt;&lt;img id="fullscreenbox" style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012041400022949.gif" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;插件代码&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;(function(){&lt;br/&gt;    var fullScreenApi = {&lt;br/&gt;            supportsFullScreen: false,&lt;br/&gt;            isFullScreen: function() { return false; },&lt;br/&gt;            requestFullScreen: function() {},&lt;br/&gt;            cancelFullScreen: function() {},&lt;br/&gt;            fullScreenEventName: '',&lt;br/&gt;            prefix: ''&lt;br/&gt;        },&lt;br/&gt;        browserPrefixes = 'webkit moz o ms khtml'.split(' ');&lt;br/&gt;    // check for native support&lt;br/&gt;    if (typeof document.cancelFullScreen != 'undefined') {&lt;br/&gt;        fullScreenApi.supportsFullScreen = true;&lt;br/&gt;    } else {&lt;br/&gt;        // check for fullscreen support by vendor prefix&lt;br/&gt;        for (var i = 0, il = browserPrefixes.length; i &amp;lt; il; i++ ) {&lt;br/&gt;            fullScreenApi.prefix = browserPrefixes[i];&lt;br/&gt;            if (typeof document[fullScreenApi.prefix + 'CancelFullScreen' ] != 'undefined' ) {&lt;br/&gt;                fullScreenApi.supportsFullScreen = true;&lt;br/&gt;                break;&lt;br/&gt;            }&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;    // update methods to do something useful&lt;br/&gt;    if (fullScreenApi.supportsFullScreen) {&lt;br/&gt;        fullScreenApi.fullScreenEventName = fullScreenApi.prefix + 'fullscreenchange';&lt;br/&gt;        fullScreenApi.isFullScreen = function() {&lt;br/&gt;            switch (this.prefix) {&lt;br/&gt;                case '':&lt;br/&gt;                    return document.fullScreen;&lt;br/&gt;                case 'webkit':&lt;br/&gt;                    return document.webkitIsFullScreen;&lt;br/&gt;                default:&lt;br/&gt;                    return document[this.prefix + 'FullScreen'];&lt;br/&gt;            }&lt;br/&gt;        }&lt;br/&gt;        fullScreenApi.requestFullScreen = function(el) {&lt;br/&gt;            return (this.prefix === '') ? el.requestFullScreen() : el[this.prefix + 'RequestFullScreen']();&lt;br/&gt;        }&lt;br/&gt;        fullScreenApi.cancelFullScreen = function(el) {&lt;br/&gt;            return (this.prefix === '') ? document.cancelFullScreen() : document[this.prefix + 'CancelFullScreen']();&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;    // jQuery plugin&lt;br/&gt;    if (typeof jQuery != 'undefined') {&lt;br/&gt;        jQuery.fn.requestFullScreen = function() {&lt;br/&gt;            return this.each(function() {&lt;br/&gt;                if (fullScreenApi.supportsFullScreen) {&lt;br/&gt;                    fullScreenApi.requestFullScreen(this);&lt;br/&gt;                }&lt;br/&gt;            });&lt;br/&gt;        };&lt;br/&gt;    }&lt;br/&gt;    window.fullScreenApi = fullScreenApi;&lt;br/&gt;})();&lt;br/&gt;&lt;/div&gt;&lt;p&gt;调用代码&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;$(function(){&lt;br/&gt;$('#fullscreenbtn').click(function(){&lt;br/&gt;if(window.fullScreenApi.supportsFullScreen){&lt;br/&gt;window.fullScreenApi.requestFullScreen(document.getElementById('fullscreenbox'));&lt;br/&gt;}else{&lt;br/&gt;alert('就你这浏览器，基本就告别全屏功能了');&lt;br/&gt;}&lt;br/&gt;});&lt;br/&gt;});&lt;br/&gt;&lt;/div&gt;&lt;p&gt;HTML代码结构&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;a id="fullscreenbtn"&amp;gt;&lt;br/&gt;&amp;lt;img id="fullscreenbox" style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012041400022949.gif" alt="" /&amp;gt;&lt;br/&gt;&amp;lt;/a&amp;gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;基于fullscreen功能，我们就可以做出很多效果，比如相册：&lt;/p&gt;&lt;p&gt;&lt;a href="http://eikes.github.com/jquery.fullscreen.js/" target="_blank"&gt;http://eikes.github.com/jquery.fullscreen.js/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;又比如视频中的全屏功能：&lt;/p&gt;&lt;p&gt;&lt;a href="http://mediaelementjs.com/" target="_blank"&gt;http://mediaelementjs.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;当然也不能不说我的&lt;a href="http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html" target="_blank"&gt;HoorayOS&lt;/a&gt;中窗口全屏的使用：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.hoorayos.com/"&gt;http://www.hoorayos.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012041400250682.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012041400252069.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;插件来源地址：&lt;a href="http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/" target="_blank"&gt;http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://files.cnblogs.com/hooray/fullscreentest.js"&gt;&lt;/script&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2446593.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/04/14/2446593.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hooray/archive/2012/03/31/2426601.html</id><title type="text">纯css实现新手帮助提示功能（首次登入提示）</title><summary type="text">整体效果展示 这类新手提示的插件还真是少，无奈之下自己写了一个，不带任何图片，完全css实现。因为考虑到功能比较特殊，使用不会太频繁，就没写成插件的模式，所有都是写死的，可以看下HTML代码结构&lt;div class="help"&gt;&lt;a href="###" class="close" title="关闭新手帮助"&gt;×&lt;/a&gt;&lt;div id="step1" class="step" step="1" s</summary><published>2012-03-31T03:06:00Z</published><updated>2012-03-31T03:06:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/03/31/2426601.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/03/31/2426601.html"/><content type="html">&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012033110405191.jpg" alt="" width="960" /&gt;&lt;/p&gt;&lt;p&gt;整体效果展示&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;这类新手提示的插件还真是少，无奈之下自己写了一个，不带任何图片，完全css实现。因为考虑到功能比较特殊，使用不会太频繁，就没写成插件的模式，所有都是写死的，可以看下HTML代码结构&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;div class="help"&amp;gt;&lt;br/&gt;&amp;lt;a href="###" class="close" title="关闭新手帮助"&amp;gt;&amp;times;&amp;lt;/a&amp;gt;&lt;br/&gt;&amp;lt;div id="step1" class="step" step="1" style="top:60px;left:320px;width:250px"&amp;gt;&lt;br/&gt;&amp;lt;b class="jt jt_top" style="left:40px;top:-40px"&amp;gt;&amp;lt;/b&amp;gt;&lt;br/&gt;&amp;lt;p&amp;gt;&lt;br/&gt;&amp;lt;span class="h1"&amp;gt;①&amp;lt;/span&amp;gt;&amp;lt;span class="h2"&amp;gt;注册登录&amp;lt;/span&amp;gt;&lt;br/&gt;&amp;lt;br&amp;gt;点这里，点这里，点这里&amp;lt;br&amp;gt;&lt;br/&gt;&amp;lt;a href="###" class="next"&amp;gt;下一步&amp;lt;/a&amp;gt;&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;div id="step2" class="step" step="2" style="top:200px;left:400px;width:250px"&amp;gt;&lt;br/&gt;&amp;lt;b class="jt jt_left" style="top:20px;left:-40px"&amp;gt;&amp;lt;/b&amp;gt;&lt;br/&gt;&amp;lt;p&amp;gt;&lt;br/&gt;&amp;lt;span class="h1"&amp;gt;②&amp;lt;/span&amp;gt;&amp;lt;span class="h2"&amp;gt;商品分类&amp;lt;/span&amp;gt;&lt;br/&gt;&amp;lt;br&amp;gt;看到了么？看到了么？看到了么？&amp;lt;br&amp;gt;&lt;br/&gt;&amp;lt;a href="###" class="next"&amp;gt;下一步&amp;lt;/a&amp;gt;&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;div id="step3" class="step" step="3" style="top:200px;left:500px;width:250px"&amp;gt;&lt;br/&gt;&amp;lt;b class="jt jt_top" style="top:-40px;left:40px"&amp;gt;&amp;lt;/b&amp;gt;&lt;br/&gt;&amp;lt;p&amp;gt;&lt;br/&gt;&amp;lt;span class="h1"&amp;gt;③&amp;lt;/span&amp;gt;&amp;lt;span class="h2"&amp;gt;搜索框&amp;lt;/span&amp;gt;&lt;br/&gt;&amp;lt;br&amp;gt;这个就不用我介绍了吧 =)&amp;lt;br&amp;gt;&lt;br/&gt;&amp;lt;a href="###" class="over"&amp;gt;&amp;nbsp;完&amp;nbsp;成&amp;nbsp;&amp;lt;/a&amp;gt;&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;重点看下每一步的html代码结构&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;div id="step1" class="step" step="1" style="top:60px;left:320px;width:250px"&amp;gt;&lt;br/&gt;&amp;lt;b class="jt jt_top" style="left:40px;top:-40px"&amp;gt;&amp;lt;/b&amp;gt;&lt;br/&gt;&amp;lt;p&amp;gt;&lt;br/&gt;&amp;lt;span class="h1"&amp;gt;①&amp;lt;/span&amp;gt;&amp;lt;span class="h2"&amp;gt;注册登录&amp;lt;/span&amp;gt;&lt;br/&gt;&amp;lt;br&amp;gt;点这里，点这里，点这里&amp;lt;br&amp;gt;&lt;br/&gt;&amp;lt;a href="###" class="next"&amp;gt;下一步&amp;lt;/a&amp;gt;&lt;br/&gt;&amp;lt;/p&amp;gt;&lt;br/&gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;如果要新增加一步，就把这段复制，然后把其中修改其中的内容即可，但要确保step参数的顺序必须是正序，然后id的后缀值也是要正序，与step一样，剩下就是修改窗口top、left的布局以及箭头的top、left布局。&lt;/p&gt;&lt;p&gt;还有一点，箭头可以设置方向，样式分别为：jt_top、jt_bottom、jt_left、jt_right。&lt;/p&gt;&lt;p&gt;介绍就这么多了，剩下的就是css和js代码，我就不多说了，大家自己看吧&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;*{margin:0;padding:0}&lt;br/&gt;form,ul,ol,li,dl,dt,dd,h1,h2,h3,h4,h5,p{list-style:none outside none}&lt;br/&gt;a{text-decoration:none;color:#ccc;outline:none}&lt;br/&gt;a:hover{text-decoration:none}&lt;br/&gt;a img{border:none}&lt;br/&gt;.fr{float:right}&lt;br/&gt;.fl{float:left}&lt;br/&gt;.disn{display:none}&lt;br/&gt;&lt;br/&gt;html{height:100%;overflow:hidden;-moz-user-select:none;-khtml-user-select:none;user-select:none}&lt;br/&gt;body{font:12px/1.8 \5FAE\8F6F\96C5\9ED1,\5B8B\4F53;background:url(bg.png)}&lt;br/&gt;&lt;br/&gt;.help{position:absolute;z-index:5555;width:100%;height:100%;background:none rgba(0, 0, 0, 0.7);display:none}&lt;br/&gt;.help .close{float:right;font-size:40px;color:#fff;width:40px;height:40px;line-height:36px;text-align:center;background:none}&lt;br/&gt;.help .close:hover{background:none rgba(0, 0, 0, 0.7)}&lt;br/&gt;.help .step{position:absolute;color:#eee;padding:0 20px 15px;background:none rgba(0, 0, 0, 0.7);border-radius:5px;display:none}&lt;br/&gt;.help .step .jt{font-size:0;height:0;border:20px solid rgba(0, 0, 0, 0);position:absolute}&lt;br/&gt;.help .step .jt_left{border-right:20px solid rgba(0, 0, 0, 0.7)}&lt;br/&gt;.help .step .jt_right{border-left:20px solid rgba(0, 0, 0, 0.7)}&lt;br/&gt;.help .step .jt_top{border-bottom:20px solid rgba(0, 0, 0, 0.7)}&lt;br/&gt;.help .step .jt_bottom{border-top:20px solid rgba(0, 0, 0, 0.7)}&lt;br/&gt;.help .step .h1{font-size:40px;font-weight:bold}&lt;br/&gt;.help .step .h2{font-size:28px;font-weight:bold;padding-left:10px}&lt;br/&gt;.help .step .next,&lt;br/&gt;.help .step .over{border:1px solid #fff;color:#fff;padding:0 5px;float:right;margin-top:10px}&lt;br/&gt;.help .step .next:hover,&lt;br/&gt;.help .step .over:hover{background:none rgba(50, 50, 50, 0.7)}&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;$(function(){&lt;br/&gt;$('.help').show();&lt;br/&gt;$('#step1').show();&lt;br/&gt;$('.close').on('click',function(){&lt;br/&gt;$('.step').hide();&lt;br/&gt;$('.help').hide();&lt;br/&gt;});&lt;br/&gt;$('.next').on('click',function(){&lt;br/&gt;var obj = $(this).parents('.step');&lt;br/&gt;var step = obj.attr('step');&lt;br/&gt;obj.hide();&lt;br/&gt;$('#step'+(parseInt(step)+1)).show();&lt;br/&gt;});&lt;br/&gt;$('.over').on('click',function(){&lt;br/&gt;$(this).parents('.step').hide();&lt;br/&gt;$('.help').hide();&lt;br/&gt;});&lt;br/&gt;});&lt;br/&gt;&lt;/div&gt;&lt;p&gt;下载地址：&lt;a href="http://files.cnblogs.com/hooray/%E7%BA%AFcss%E5%AE%9E%E7%8E%B0%E6%96%B0%E6%89%8B%E5%B8%AE%E5%8A%A9%E6%8F%90%E7%A4%BA%E5%8A%9F%E8%83%BD%EF%BC%88%E9%A6%96%E6%AC%A1%E7%99%BB%E5%85%A5%E6%8F%90%E7%A4%BA%EF%BC%89.zip" target="_blank"&gt;点击下载&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2426601.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/03/31/2426601.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hooray/archive/2012/03/23/2414410.html</id><title type="text">【HoorayOS】开源的Web桌面应用框架（文件夹功能分析）</title><summary type="text">下一版本的重要功能就是“文件夹”，随着应用码头的出现，任务栏也改成大图标的模式，桌面可放置图标的位置越来越少，“文件夹”就应然而生了，但在制作过程中，发现几个难点，也就是图标拖动时需要注意的部分。如下图，文件夹内的图标在拖动结束的时候，位置可能会处在四处：应用码头、桌面、当前文件夹、其他文件夹 前两种情况可以参考下图，图标拖动的第一步就是先画格子。 然后记录下每个格子四个角的坐标保存为数组，然后循环数组依次添加图标进去。 之后图标拖动也是需要这个格子数组，当我拖动完毕释放图标的时候，判断鼠标释放的位置处于哪个格子中间，进行图标移动并重新排序，实现图标拖动功能，应用码头拖动也是同样思路...</summary><published>2012-03-23T15:31:00Z</published><updated>2012-03-23T15:31:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/03/23/2414410.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/03/23/2414410.html"/><content type="html">&lt;p&gt;下一版本的重要功能就是&amp;ldquo;文件夹&amp;rdquo;，随着应用码头的出现，任务栏也改成大图标的模式，桌面可放置图标的位置越来越少，&amp;ldquo;文件夹&amp;rdquo;就应然而生了，但在制作过程中，发现几个难点，也就是图标拖动时需要注意的部分。如下图，文件夹内的图标在拖动结束的时候，位置可能会处在四处：应用码头、桌面、当前文件夹、其他文件夹&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012032322410654.png" alt="" width="850" /&gt;&lt;/p&gt;&lt;p&gt;前两种情况可以参考下图，图标拖动的第一步就是先画格子。&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012032322565758.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;然后记录下每个格子四个角的坐标保存为数组，然后循环数组依次添加图标进去。&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012032322585916.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;之后图标拖动也是需要这个格子数组，当我拖动完毕释放图标的时候，判断鼠标释放的位置处于哪个格子中间，进行图标移动并重新排序，实现图标拖动功能，应用码头拖动也是同样思路，两者结合起来无非就是要判断两次，先判断释放位置是否处于应用码头的格子内，然后再判断是否处于桌面的格子内。&lt;/p&gt;&lt;p&gt;我在想，文件夹之间的图标拖动是否也可以参考这种模式，桌面上所有已打开并处于显示状态的文件夹窗口，当作是一个个的格子，保存到一个数组里。因为显示在桌面的窗口不管在任何情况都是高于桌面的，也就是覆盖在桌面上，所以当拖动结束释放时，优先判断图标是否处于文件夹的格子内，然后再依次判断应用码头的格子和桌面的格子。&lt;/p&gt;&lt;p&gt;随之又想到会出现这种情况，就是文件夹会重叠，如果我图标拖动的位置刚好处于图中问号处，系统怎么知道我先要拖放的位置的哪个窗口呢？&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012032323221389.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;其实细想一下，完全不用担心。我的文件夹格子数组可以在图标拖动的时候创建，创建的时候依次按文件夹窗口z-index的值从大到小来读取，这样就是保证文件夹格子数组里记录内容的顺序也是按照文件夹层级顺序来存放的，当我循环数组判断图标拖放位置的时候，自然也就避免了刚才那个问题。&lt;/p&gt;&lt;p&gt;OK，以上就是文件夹内图标拖动的大致思路，希望开发的时候能够顺利些，也能让第三版顺利面世，让大家用用试试。&lt;/p&gt;&lt;p&gt;PS：更新demo演示：&lt;a href="http://jsfiddle.net/UjS7Y/2/embedded/result/" target="_blank"&gt;http://jsfiddle.net/UjS7Y/2/embedded/result/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2414410.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/03/23/2414410.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hooray/archive/2012/03/11/2390159.html</id><title type="text">【HoorayOS】开源的Web桌面应用框架（第二版 v120311）</title><summary type="text">经过大量自愿者的BUG提交，建议讨论之后，迎来了第二版。让我们一起来看看第二版更新了哪些新功能吧。应用码头图标右键菜单桌面右键菜单主题模块 更多细节上的修改就不一一描述了，以下是测试地址，由于第二版与第一版相比，更新较多，所以之前注册的用户都清空了。 演示站：http://www.hoorayos.com/ HoorayOS介绍及下载：http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html</summary><published>2012-03-11T06:53:00Z</published><updated>2012-03-11T06:53:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/03/11/2390159.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/03/11/2390159.html"/><content type="html">&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012022922332451.jpg" alt="" width="800" height="300" /&gt;&lt;/p&gt;&lt;p&gt;经过大量自愿者的BUG提交，建议讨论之后，迎来了第二版。让我们一起来看看第二版更新了哪些新功能吧。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;应用码头&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012031114414291.jpg" alt="" width="547" height="276" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;图标右键菜单&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/277258/2012031114445712.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;桌面右键菜单&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/277258/2012031114454851.jpg" alt="" width="179" height="170" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;主题模块&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/277258/2012031114471781.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;更多细节上的修改就不一一描述了，以下是测试地址，由于第二版与第一版相比，更新较多，所以之前注册的用户都清空了。&lt;/p&gt;&lt;p&gt;演示站：&lt;a href="http://www.hoorayos.com/" target="_blank"&gt;http://www.hoorayos.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;HoorayOS介绍及下载：&lt;a href="http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html" target="_blank"&gt;http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html&lt;/a&gt;&lt;/p&gt;&lt;script type="text/javascript" src="http://files.cnblogs.com/hooray/qiangzhiguanzhu.js"&gt;&lt;/script&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2390159.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/03/11/2390159.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html</id><title type="text">【HoorayOS】开源的Web桌面应用框架</title><summary type="text">特地等了好久才等到今天发布，想着好歹也算个特殊点的日子。 HoorayOS从最早只是一个想法，到现在正式开源，也经过的大半年，不看不知道，刚去找了下最早的一篇文章，居然真的过去了半年。 这次开源给大家带来了一些新的东西，让我们一起来看看吧。四款全新皮肤评分功能仿win7超级预览功能应用管理 HoorayOS是什么？HoorayOS是一套web桌面应用框架，你可以用它开发出类似与115应用中心、Q+web这类的桌面应用网站，也可以在它的基础上二次开发出适合项目的桌面式管理系统。 HoorayOS需要什么环境？PHP（5.2.6）、Mysql（5.0.51b） HoorayOS交流群...</summary><published>2012-02-29T03:32:00Z</published><updated>2012-02-29T03:32:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html"/><content type="html">&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012022922332451.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;特地等了好久才等到今天发布，想着好歹也算个特殊点的日子。&lt;/p&gt;&lt;p&gt;HoorayOS从最早只是一个想法，到现在正式开源，也经过的大半年，不看不知道，刚去找了下最早的一篇文章，居然真的过去了半年。&lt;/p&gt;&lt;p&gt;这次开源给大家带来了一些新的东西，让我们一起来看看吧。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;四款全新皮肤&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012022910383236.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;评分功能&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012022911125867.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;仿win7超级预览功能&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012022911154271.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;应用管理&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012022911165025.jpg" alt="" /&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;HoorayOS是什么？&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;HoorayOS是一套web桌面应用框架，你可以用它开发出类似与115应用中心、Q+web这类的桌面应用网站，也可以在它的基础上二次开发出适合项目的桌面式管理系统。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;HoorayOS需要什么环境？&lt;span style="color: #0000ff;"&gt;PHP（5.2.6）、Mysql（5.0.51b）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;span&gt;HoorayOS交流群：213804727（仅限技术交流）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;商业合作或系统定制：304327508（QQ）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;IT技术交流群：19046753（加群请注明职业技能或职位）&lt;/span&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;DEMO演示地址：&lt;a href="http://www.hoorayos.com" target="_blank"&gt;http://www.hoorayos.com&lt;/a&gt;&lt;a href="http://www.hoorayos.com/" target="_blank"&gt;/&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;最新版本下载&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;style&gt;&lt;!--.download-now {BORDER-BOTTOM-STYLE: none; TEXT-INDENT: -9999px; OUTLINE-STYLE: none; OUTLINE-WIDTH: medium; WIDTH: 169px; DISPLAY: block; BACKGROUND: url(http://pic002.cnblogs.com/images/2012/277258/2012022910334413.png) no-repeat left top; HEIGHT: 49px}.download-now:hover {BACKGROUND-POSITION: 0px -53px}.download-now:active {BACKGROUND-POSITION: 0px -104px}--&gt;&lt;/style&gt;&lt;p&gt;&lt;a class="download-now" style="margin: auto;" href="http://code.google.com/p/hoorayos/" target="blank"&gt;download&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2372952.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/02/29/2372952.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/hooray/archive/2012/02/17/2355560.html</id><title type="text">对QR码的初步研究（附：在博客里放上博客文章的QR码）</title><summary type="text">直入正题，经过2天的玩弄，发现QR码的生成有以下三种： google QR API 相关jquery QR插件 后端语言生成 下面我分别来介绍下这三种方法及优劣分析。 google QR API 这是最简单的，只需一个链接，如：https://chart.googleapis.com/chart?cht=qr&amp;chs=200x200&amp;choe=UTF-8&amp;chld=L|4&amp;chl=http://www.cnblogs.com/hooray 然后将它放到img标签里，就能自动生成QR码图片了 下面就具体说下链接里的参数吧 https://chart.googlea</summary><published>2012-02-17T04:03:00Z</published><updated>2012-02-17T04:03:00Z</updated><author><name>胡尐睿丶</name><uri>http://www.cnblogs.com/hooray/</uri></author><link rel="alternate" href="http://www.cnblogs.com/hooray/archive/2012/02/17/2355560.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/hooray/archive/2012/02/17/2355560.html"/><content type="html">&lt;p&gt;直入正题，经过2天的玩弄，发现QR码的生成有以下三种：&lt;/p&gt;&lt;p&gt;google QR API&lt;/p&gt;&lt;p&gt;相关jquery QR插件&lt;/p&gt;&lt;p&gt;后端语言生成&lt;/p&gt;&lt;p&gt;下面我分别来介绍下这三种方法及优劣分析。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;google QR API&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这是最简单的，只需一个链接，如：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;https://chart.googleapis.com/chart?cht=qr&amp;amp;chs=200x200&amp;amp;choe=UTF-8&amp;amp;chld=L|4&amp;amp;chl=http://www.cnblogs.com/hooray&lt;br/&gt;&lt;/div&gt;&lt;p&gt;然后将它放到img标签里，就能自动生成QR码图片了&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="https://chart.googleapis.com/chart?cht=qr&amp;amp;chs=200x200&amp;amp;choe=UTF-8&amp;amp;chld=L|4&amp;amp;chl=http://www.cnblogs.com/hooray" alt="" /&gt;&lt;/p&gt;&lt;p&gt;下面就具体说下链接里的参数吧&lt;/p&gt;&lt;p&gt;https://chart.googleapis.com/chart?　这是Google Chart API的头部，直接照抄就行&lt;/p&gt;&lt;p&gt;&amp;amp;cht=qr　这是说图表类型为qr也就是二维码&lt;/p&gt;&lt;p&gt;&amp;amp;chs=200x200　这是说生成图片尺寸为200*200，是宽*高，这并不是生成图片的真实尺寸，应该是最大尺寸吧&lt;/p&gt;&lt;p&gt;&amp;amp;choe=UTF-8　这是说内容的编码格式为UTF-8，此值默认为UTF-8（其他的编码格式请参考&lt;a href="http://code.google.com/apis/chart/image/docs/gallery/qr_codes.html" target="_blank"&gt;Google API文档&lt;/a&gt;）&lt;/p&gt;&lt;p&gt;&amp;amp;chld=L|4　L代表默认纠错水平，4代表二维码边界空白大小，可自行调节（具体参数请参考&lt;a href="http://code.google.com/apis/chart/image/docs/gallery/qr_codes.html" target="_blank"&gt;Google API文档&lt;/a&gt;）&lt;/p&gt;&lt;p&gt;&amp;amp;chl=XXXX　这是QR内容，也就是解码后看到的信息，包含中文时请使用UTF-8编码汉字，否则将出现问题&lt;/p&gt;&lt;p&gt;参数就是这么多了，利用google的QR API就可以制作类似博客签名的东东（参考文章结束部分）&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;优点：不占用服务器资源，速度稳定，生成图片&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff;"&gt;缺点：不能设置QR码颜色&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;相关jquery QR插件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;插件有几个，我主要介绍&amp;ldquo;&lt;a href="http://jeromeetienne.github.com/jquery-qrcode/" target="_blank"&gt;jquery.qrcode.js&lt;/a&gt;&amp;rdquo;，它的调用方法非常简单，就拿官方的demo来看吧&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;div id="qrcode"&amp;gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;script&amp;gt;&lt;br/&gt;jQuery('#qrcode').qrcode({&lt;br/&gt;render: "table",&lt;br/&gt;text: "http://jetienne.com"&lt;br/&gt;});&lt;br/&gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;它可以设置生成的图片形式是table或者canvas&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;优点：不占用服务器资源，可设置颜色（插件里是写死的，不过可以修改插件实现颜色修改）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff;"&gt;缺点：不生成图片，table模式下可能会出错，canvas部分浏览器不支持&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;后端语言生成&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我主要介绍下php的一个QR类，他是基于GD2库来绘制QR码的，并且生成图片，原本不支持颜色修改，不过我稍微修改了一点，可以设置颜色了。&lt;/p&gt;&lt;p&gt;PHP QR Code：&lt;a href="http://phpqrcode.sourceforge.net/" target="_blank"&gt;官方地址&lt;/a&gt;　&lt;a href="http://files.cnblogs.com/hooray/phpqrcode.zip" target="_blank"&gt;胡尐睿丶修改版&lt;/a&gt;&lt;/p&gt;&lt;p&gt;具体的就不多讲了，配置好后打开index.php能看到如下界面就OK了，至于如何在项目中使用就自己慢慢研究去吧&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012021712001737.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;优点：生成图片，可修改颜色&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff;"&gt;缺点：占用服务器资源&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;附1：QR码存储容量图&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://pic002.cnblogs.com/images/2012/277258/2012021714012697.jpg" alt="" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/hooray/aggbug/2355560.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/hooray/archive/2012/02/17/2355560.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
