<?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>某人的栖息地 &#187; javascript</title>
	<atom:link href="http://www.ooso.net/category/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ooso.net</link>
	<description>Linux + Apache + Mysql + Php + Flash</description>
	<lastBuildDate>Thu, 19 Jan 2012 01:21:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>使用markdown格式写Todo list</title>
		<link>http://www.ooso.net/archives/615</link>
		<comments>http://www.ooso.net/archives/615#comments</comments>
		<pubDate>Mon, 26 Dec 2011 03:10:42 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=615</guid>
		<description><![CDATA[上周我完成了chrome的markdown-preview扩展的修改，使它支持markdown文件的实时预览功能。现在可以考虑用这个功能来做一些更酷的事情，比如说，写Todo list?
开始干

首先我找到了一个叫topmarks的markdown样式文件，这个样式文件能给出一个漂亮的Todo list样式，我把它合并到了 修改后的markdown preview插件

				<span class="readmore"><a href="http://www.ooso.net/archives/615" title="使用markdown格式写Todo list">阅读全文（436字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>上周我完成了<a href="http://www.ooso.net/archives/611">chrome的markdown-preview扩展的修改</a>，使它支持markdown文件的实时预览功能。现在可以考虑用这个功能来做一些更酷的事情，比如说，写Todo list?</p>
<h3>开始干</h3>
<ul>
<li>首先我找到了一个叫<a href="https://github.com/stuart36deg/TopMarks">topmarks的markdown样式文件</a>，这个样式文件能给出一个漂亮的Todo list样式，我把它合并到了 <a href="https://github.com/volca/markdown-preview">修改后的markdown preview插件</a></li>
<li>关注了一下markdown-preview原作者的github，他有计划增加一项功能，让用户可以自定义css文件，但是近期完成无望，所以我新增了一个topmarks的分支，采用新的样式</li>
<li>在chrome的扩展中重新加载插件</li>
</ul>
<h3>效果图</h3>
<p>如图，我采用vim编辑文件，右边摆上chrome浏览器预览，文件采用dropbox同步，保证我随时能更新这个文件。</p>
<p><img src="http://ww1.sinaimg.cn/large/72f2af1bgw1dofto6t2hfj.jpg" alt="效果图" /></p>
<h3>关于topmarks的补充说明</h3>
<p>topmarks样式采用了这些自定义标签</p>
<ul>
<li>&lt;t&gt; 新任务</li>
<li>&lt;d&gt; 已完成的任务</li>
<li>&lt;c&gt; 已取消的任务</li>
<li>http, ical, mailto, file链接有不同的图标</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/615/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>markdown文件的编辑以及实时预览</title>
		<link>http://www.ooso.net/archives/611</link>
		<comments>http://www.ooso.net/archives/611#comments</comments>
		<pubDate>Thu, 22 Dec 2011 08:54:20 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=611</guid>
		<description><![CDATA[之前看到有一款叫Mou的软件可以编辑markdown格式的文本内容并且实时预览，可是我比较喜欢用vim编辑器，所以就想着能不能用别的软件配合着来实现实时预览。
今天看到一个chrome的扩展叫markdown preview，它可以自动把md或markdown后缀的文本转换为html格式在chrome中查看，只是还欠缺一个自动刷新的功能。然后我看到它的源码已经放在github上，于是抓回来做了一些修改，加上了自动刷新的功能。
演示
尝试了一下在vim中编辑文件，然后在chrome中浏览，效果还不错，见下图：

				<span class="readmore"><a href="http://www.ooso.net/archives/611" title="markdown文件的编辑以及实时预览">阅读全文（645字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>之前看到有一款叫Mou的软件可以编辑markdown格式的文本内容并且实时预览，可是我比较喜欢用vim编辑器，所以就想着能不能用别的软件配合着来实现实时预览。</p>
<p>今天看到一个chrome的扩展叫<a href="https://chrome.google.com/webstore/detail/jmchmkecamhbiokiopfpnfgbidieafmd">markdown preview</a>，它可以自动把md或markdown后缀的文本转换为html格式在chrome中查看，只是还欠缺一个自动刷新的功能。然后我看到它的源码已经放在github上，于是抓回来做了一些修改，加上了自动刷新的功能。</p>
<h2>演示</h2>
<p>尝试了一下在vim中编辑文件，然后在chrome中浏览，效果还不错，见下图：</p>
<p><img src="http://ww1.sinaimg.cn/large/72f2af1bgw1dobg6hnkn0j.jpg" alt="效果图" /></p>
<h2>更改后的扩展</h2>
<p>我把修改后的markdown preview插件放在<a href="https://github.com/volca/markdown-preview">github上</a> ， 已经尝试向原作者发起pull requests，要试用的话需要按下面几步操作:</p>
<ol>
<li>把插件的代码clone回来 <code>git clone git://github.com/volca/markdown-preview.git</code></li>
<li>开启chrome扩展的开发者模式，具体位置在<strong>窗口 -> 扩展程序</strong>里</li>
<li>载入正在开发的扩展程序</li>
<li>将<strong>允许访问文件网址</strong>勾选上</li>
</ol>
<p>然后你就可以尝试用chrome浏览器打开markdown文件预览html，采用趁手的编辑器去修改它。</p>
<h2>BTW</h2>
<ul>
<li>chrome下的插件写起来比想像的要简单，写javascript就是了</li>
<li>现在这篇blog即是我用markdown格式写成的，用到了wordpress的<strong>markdown on save</strong>扩展。</li>
</ul>
<h2>Update</h2>
<ul>
<li>测试把文件放在dropbox的Public下，修改之后的效果能够立刻在共享链接里看到效果，很完美</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/611/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>jquery mobile alpha4有什么变化</title>
		<link>http://www.ooso.net/archives/594</link>
		<comments>http://www.ooso.net/archives/594#comments</comments>
		<pubDate>Tue, 29 Mar 2011 01:07:25 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery-mobile]]></category>
		<category><![CDATA[phonegap]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=594</guid>
		<description><![CDATA[Jquery mobile团队即将发布alpha4，这个版本主要关注两个问题：性能以及兼容性。以下是这个版本更新的主要部分
Windows Phone 7 (WP7) 支持
JQM已经支持在WP7上运行，原来对WP7原生浏览器的支持度为C，也就是说部分核心功能不可用。而alpha4对这个做了大幅改动，支持度为A-，也就是说jquery mobile所有核心功能在WP7上都能运行良好。顺带受惠的还有桌面版的ie7, 8, 9，也能取得很好的运行效果。
名称空间data- 属性

				<span class="readmore"><a href="http://www.ooso.net/archives/594" title="jquery mobile alpha4有什么变化">阅读全文（1292字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>Jquery mobile团队即将发布alpha4，这个版本主要关注两个问题：性能以及兼容性。以下是这个版本更新的主要部分</p>
<h2>Windows Phone 7 (WP7) 支持</h2>
<p>JQM已经支持在WP7上运行，原来对WP7原生浏览器的支持度为C，也就是说部分核心功能不可用。而alpha4对这个做了大幅改动，支持度为A-，也就是说jquery mobile所有核心功能在WP7上都能运行良好。顺带受惠的还有桌面版的ie7, 8, 9，也能取得很好的运行效果。</p>
<h2>名称空间data- 属性</h2>
<p>jquery mobile大量使用html5的data属性来定义html标签，比如页头是 <strong>data-role=&#8221;header&#8221;</strong>，但是其它开发框架和插件也可能使用了data来标记某些特性，为避免冲突，alpha4新增了名称空间的概念，新增了jqmData,jqmRemoveData和jqmHasData这几个方法来访问data属性，和jquery的data()相比，这几个方法支持名称空间访问。</p>
<p>举个例子，原来使用<strong>data-icon</strong>来标记一个标签使用的图标，但是如果你使用了名称空间 <strong>foo</strong>,那么这个属性应该变成 <strong>data-foo-icon</strong>。为了不影响原来基于jquery mobile开发的程序，名称空间默认为空，保持不变。</p>
<h2>统一的touch/mouse事件处理系统</h2>
<p>新的touch/mouse“虚拟”事件，详情请参考<a href="http://blogs.adobe.com/adobeandjquery/2011/03/07/the-current-state-of-touch-events/">The current state of touch events</a></p>
<h2>phonegap支持增强</h2>
<p>jquery mobile很适合和phonegap一起搭配来做原生的手机应用，但是在alpha3的时候，页面上的链接会被phonegap神奇的截断，有三个相关的问题：</p>
<ul>
<li>jQuery 1.5 截断了 file:// URLs</li>
<li>jQuery 1.5.1 修复了 file://，但是它把HTML当成是XML, 所以需要在做ajax请求的时候指定dataType.</li>
<li>原来是不允许JQM加载跨域的JQM页面，但是这个版本新增了一个配置选项 <strong>$.mobile.allowCrossDomainPages</strong> 来支持http/https页面. 这个改动会导致URL可能出现这样的情况: file://dir1/dir2/myPhoneGapApp.html#https://myHomeServer.com/dir1/dir2/foo</li>
</ul>
<p>以上这些问题在JQM alpha4里都得到了很好的解决，前提是使用jquery 1.5.1。</p>
<h2>重要的升级注意事项</h2>
<ul>
<li>列表li的html结构变化，可以用a标签直接包住li中需要链接的整个部分，比如图片,文字段落。</li>
<li>由于WP7不支持动态插入viewport meta标签，所以现在推荐的方式是在每个页面上都放上meta标签，原来是由JQM的metaViewportContent 方法动态插入的，但是以后这个方法将被取消。为了避免影响已有的站点，JQM会在缺少meta标签的页面上直接插入了一个。</li>
<li>原生的select选单将成为默认选项，这是出于性能问题考虑，如果你希望在alpha4中继续使用JQM定制的select选单，那么需要加上 <strong>data-native-menu=&#8221;false&#8221;</strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/594/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>yepnope.js &#8211; 异步加载资源文件</title>
		<link>http://www.ooso.net/archives/591</link>
		<comments>http://www.ooso.net/archives/591#comments</comments>
		<pubDate>Tue, 08 Mar 2011 05:29:47 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[yepnope]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=591</guid>
		<description><![CDATA[yepnope.js是一个能够根据输入条件来选择性异步加载资源文件的js脚本，可以在页面上仅加载用户需要的js/css。
典型代码示例
yepnope({
  test : Modernizr.geolocation,

				<span class="readmore"><a href="http://www.ooso.net/archives/591" title="yepnope.js &#8211; 异步加载资源文件">阅读全文（1006字）</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://yepnopejs.com/">yepnope.js</a>是一个能够根据输入条件来选择性异步加载资源文件的js脚本，可以在页面上仅加载用户需要的js/css。</p>
<h2>典型代码示例</h2>
<pre><code>yepnope({
  test : Modernizr.geolocation,
  yep  : 'normal.js',
  nope : ['polyfill.js', 'wrapper.js']
});</code></pre>
<p>当Modernizr.geolocation为真时，加载yep项也就是&#8221;normal.js&#8221;，否则加载nope项——可以同时加载多个文件。</p>
<h2>yepnope和现有的xxx script loader有什么区别？</h2>
<p>个人认为主要 是这两点：</p>
<ul>
<li>可以同时处理javascript以及css</li>
<li>能够按条件加载</li>
</ul>
<h2>yepnope的全部参数</h2>
<pre><code>yepnope([{
  test : /* boolean(ish) - 你要检查真伪的表达式             */,
  yep  : /* array (of strings) | string - test为true时加载这项  */,
  nope : /* array (of strings) | string - test为false时加载这项 */,
  both : /* array (of strings) | string - 什么情况下都加载              */,
  load : /* array (of strings) | string - 什么情况下都加载              */,
  callback : /* function ( testResult, key ) | object { key : fn }   当某个url加载成功时执行相应的方法         */,
  complete : /* function   都加载完成了执行这个方法                                                   */
}, ... ]);</code></pre>
<p>这里的参数都可以是array或者object，在加载多个资源文件的时候有用。</p>
<h3>yepnope加载jquery的实例</h3>
<pre><code>yepnope([{
  load: 'http:/­/ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js',
  complete: function () {
    if (!window.jQuery) {
      yepnope('local/jquery.min.js');
    }
  }
}, {
  load: 'jquery.plugin.js',
  complete: function () {
    jQuery(function () {
      jQuery('div').plugin();
    });
  }
}]);</code></pre>
<p>这段代码异步加载了jquery和jquery.plugin.js，甚至还对jquery加载失败的情况做了一个备用处理。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/591/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>如何安装Node.js</title>
		<link>http://www.ooso.net/archives/589</link>
		<comments>http://www.ooso.net/archives/589#comments</comments>
		<pubDate>Sun, 13 Feb 2011 01:34:54 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=589</guid>
		<description><![CDATA[下面分别介绍在Mac, Ubuntu,Centos以及Windows下安装Node.js.
Mac
在Mac下，如果你喜欢用homebrew，那么只用一行就可以装好:
brew install node

				<span class="readmore"><a href="http://www.ooso.net/archives/589" title="如何安装Node.js">阅读全文（1230字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>下面分别介绍在<a href="#mac">Mac</a>, <a href="#ubuntu">Ubuntu</a>,<a href="#centos">Centos</a>以及<a href="#windows">Windows</a>下安装<a href="/tag/nodejs">Node.js</a>.</p>
<h2 id="mac">Mac</h2>
<p>在Mac下，如果你喜欢用<a href="http://github.com/mxcl/homebrew">homebrew</a>，那么只用一行就可以装好:</p>
<pre><code>brew install node</code></pre>
<p>否则，只能考虑手工安装了，步骤如下：</p>
<ul>
<ol>
<li>安装Xcode</li>
<li><a href="http://help.github.com/mac-git-installation/">安装git</a></li>
<li>运行下面的命令行编译node.js
<pre><code>git clone git://github.com/joyent/node.git
cd node
./configure
make
sudo make install</code></pre>
</li>
</ol>
</ul>
<h2 id="ubuntu">Ubuntu</h2>
<ul>
<ol>
<li>安装依赖包
<pre><code>sudo apt-get install g++ curl libssl-dev apache2-utils
sudo apt-get install git-core</code></pre>
</li>
<li>运行下面的命令行:
<pre><code>git clone git://github.com/joyent/node.git
cd node
./configure
make
sudo make install</code></pre>
</li>
</ol>
</ul>
<h2 id="windows">Windows</h2>
<p>用cygwin来安装node，步骤如下:</p>
<ul>
<ol>
<li>安装<a href="http://www.cygwin.com/">cygwin</a>
</li>
<li>在cygwin的目录下，运行setup.exe安装下面列表中的包
<ul>
<li>devel → openssl</li>
<li>devel → g++-gcc</li>
<li>devel → make
</li>
<li>python → python
</li>
<li>devel → git
</li>
</ul>
</li>
<li>运行cygwin
</li>
<li>运行下面的命令行:
<pre><code>git clone git://github.com/joyent/node.git
cd node
./configure
make
sudo make install</code></pre>
</li>
</ol>
</ul>
<h2 id="centos">Centos</h2>
<pre><code>yum install gcc-c++ openssl-devel
wget --no-check-certificate https://github.com/joyent/node/tarball/v0.3.3
tar -xzvf ry-node-v0.3.3-0-g57544ba.tar.gz
cd ry-node-v0.3.3-0-g57544bac1
./configure
make
make install</code></pre>
<h2>Hello Node.js!</h2>
<p>写一段小程序例如hello_node.js来验证安装是否正确：</p>
<pre><code>var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');</code></pre>
<p>用node来运行这段代码</p>
<pre><code>node hello_node.js
Server running at http://127.0.0.1:8124/</code></pre>
<p>现在，用浏览器打开 http://127.0.0.1:8124/ ， 应该能够看到一条好消息。</p>
<h2>参考文档</h2>
<p><a href="http://howtonode.org/how-to-install-nodejs">How to Install Node.js</a></p>
<h2>Update</h2>
<ul>
<li>补充了在centos上安装Node.js的步骤</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/589/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>如何在jquery mobile中加载google map api</title>
		<link>http://www.ooso.net/archives/580</link>
		<comments>http://www.ooso.net/archives/580#comments</comments>
		<pubDate>Thu, 13 Jan 2011 07:03:42 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[google-map]]></category>
		<category><![CDATA[jquery-mobile]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=580</guid>
		<description><![CDATA[介绍一个用jquery mobile的ajax效果加载google map api，实现地图呈现的例子。
代码示例
首先是代码示例，使用iphone或android之类的手机查看，效果更佳
google map with jquery mobile

				<span class="readmore"><a href="http://www.ooso.net/archives/580" title="如何在jquery mobile中加载google map api">阅读全文（605字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>介绍一个用<a href="/tag/jquery-mobile">jquery mobile</a>的ajax效果加载google map api，实现地图呈现的例子。</p>
<h2>代码示例</h2>
<p>首先是代码示例，使用iphone或android之类的手机查看，效果更佳<br />
<a href="http://www.ooso.net/wp-content/uploads/2010/12/map/">google map with jquery mobile</a></p>
<h2>关键代码说明</h2>
<p><strong>map.js</strong></p>
<p>map.js定义了加载地图的方法initiallize()，这个和常规网页中加载google map是一致的，因此这里不再细述。</p>
<p><strong>map.html</strong></p>
<p>地图的实际页面，在这个页面中不能直接加载google map的api，因为它是采用document.write再次写入script来实现的，所以我们采用callback的方式来加载它，见下面的代码： </p>
<pre><code>head.js(
        "map.js",
        function() {
            head.js("http://maps.google.com/maps/api/js?sensor=true&#038;callback=initialize");
        }
    );</code></pre>
<p>首先用<a href="https://github.com/headjs/headjs">head.js</a>把initialize方法装载进来，然后用callback方式调用google map api。你可以试试用最平常的方式加载这段代码，看看有什么效果。</p>
<pre><code>&lt;script src="map.js"&gt;&lt;/script&gt;
&lt;script src="http://maps.google.com/maps/api/js?sensor=true&#038;callback=initialize"&gt;&lt;/script&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/580/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>gmail的pop3快速刷新脚本</title>
		<link>http://www.ooso.net/archives/526</link>
		<comments>http://www.ooso.net/archives/526#comments</comments>
		<pubDate>Fri, 30 Oct 2009 13:34:20 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[greasemonkey]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=526</guid>
		<description><![CDATA[gmail接收pop3邮件的周期挺长的，如果邮件不是太频繁的话，差不多1小时才会刷新一次。如果你是firefox用户的话，解决办法是：


安装greasemonkey插件

				<span class="readmore"><a href="http://www.ooso.net/archives/526" title="gmail的pop3快速刷新脚本">阅读全文（242字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>gmail接收pop3邮件的周期挺长的，如果邮件不是太频繁的话，差不多1小时才会刷新一次。如果你是<a href="/?tag=firefox">firefox</a>用户的话，解决办法是：</p>
<ol>
<ul>
<li>安装<a href="/?tag=greasemonkey">greasemonkey</a>插件</li>
<li>安装<a href="http://userscripts.org/scripts/show/56812">猴子脚本 </a></li>
<li>安装<a href="http://customcode.googlecode.com/files/gmail_pop3_quick_checker.user.js">我改写过的邮件检查脚本</a></li>
</ul>
</ol>
<p>这个工具的用途是在页面上方的“刷新”旁边新增一个链接“刷新POP3邮件”，点击之后会马上检查所有的POP3邮箱。至于自动刷新功能，还等着看官你自己搞定呢。</p>
<p>BTW:如果是英文版的gmail，请手工修改gmail_pop3_quick_checker.user.js，我都提取出来了。 </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/526/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yahoo yui host提供combo handler服务</title>
		<link>http://www.ooso.net/archives/458</link>
		<comments>http://www.ooso.net/archives/458#comments</comments>
		<pubDate>Thu, 17 Jul 2008 01:42:45 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/458</guid>
		<description><![CDATA[Yahoo之前提供了公开的YUI Hosting，现在又在这个基础上进一步提供了combo handler服务。这项服务的目的是尽可能减少http请求的数目，以提高web前端的展现速度，这也是高性能网页开发的14条军规之首。
此前，如果要使用YUI Rich Text Editor，需要引用若干外部js。共计6个http请求。
&#60;script type="text/javascript"
   src="http://yui.yahooapis.com/2.5.2/build/yahoo-dom-event/yahoo-dom-event.js"&#62;&#60;/script&#62;

				<span class="readmore"><a href="http://www.ooso.net/archives/458" title="Yahoo yui host提供combo handler服务">阅读全文（226字）</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ooso.net/index.php/archives/265">Yahoo之前提供了公开的YUI Hosting</a>，现在又在这个基础上进一步提供了combo handler服务。这项服务的目的是尽可能减少http请求的数目，以提高web前端的展现速度，这也是<a href="http://www.space007.com/post/129.html">高性能网页开发的14条军规</a>之首。</p>
<p>此前，如果要使用YUI Rich Text Editor，需要引用若干外部js。共计6个http请求。</p>
<pre><code>&lt;script type="text/javascript"
   src="http://yui.yahooapis.com/2.5.2/build/yahoo-dom-event/yahoo-dom-event.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"
   src="http://yui.yahooapis.com/2.5.2/build/container/container_core-min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"
   src="http://yui.yahooapis.com/2.5.2/build/menu/menu-min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"
   src="http://yui.yahooapis.com/2.5.2/build/element/element-beta-min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"
   src="http://yui.yahooapis.com/2.5.2/build/button/button-min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"
   src="http://yui.yahooapis.com/2.5.2/build/editor/editor-beta-min.js"&gt;&lt;/script&gt;</code></pre>
<p>如果使用combo handler，那么http请求数可以合并成一个，如下：   </p>
<pre><code>&lt;script type="text/javascript"
src="http://yui.yahooapis.com/combo?2.5.2/build/yahoo-dom-event/yahoo-dom-event.js&#038;
2.5.2/build/container/container_core-min.js&#038;2.5.2/build/menu/menu-min.js&#038;
2.5.2/build/element/element-beta-min.js&#038;2.5.2/build/button/button-min.js&#038;
2.5.2/build/editor/editor-beta-min.js"&gt;&lt;/script&gt;</code></pre>
<p>可惜这个host在国外，对国内的yui用户来说，没有什么帮助。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/458/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>图片预加载效果的实现</title>
		<link>http://www.ooso.net/archives/423</link>
		<comments>http://www.ooso.net/archives/423#comments</comments>
		<pubDate>Sun, 15 Jun 2008 23:25:48 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[picasa]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=423</guid>
		<description><![CDATA[使用picasa的时候，注意到它首先是显示模糊的图片，然后图片突然变得清晰，这样做有一定的好处——picasa的图片翻页是用javascript实现的，如果直接载入大图，中间势必会有个空档，用户在这中间会感觉很空虚~~
于是我花了点时间，打探它的实现方式，发觉很简单，不是用的lowsrc之类的标记，而是简单的js。
代码示例
&#60;img id="myImage" src="small_144.jpg" width="640" /&#62;

				<span class="readmore"><a href="http://www.ooso.net/archives/423" title="图片预加载效果的实现">阅读全文（350字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>使用<a href="http://www.picasaweb.com">picasa</a>的时候，注意到它首先是显示模糊的图片，然后图片突然变得清晰，这样做有一定的好处——picasa的图片翻页是用<a href="/?tag=javascript">javascript</a>实现的，如果直接载入大图，中间势必会有个空档，用户在这中间会感觉很空虚~~</p>
<p>于是我花了点时间，打探它的实现方式，发觉很简单，不是用的lowsrc之类的标记，而是简单的js。</p>
<h3>代码示例</h3>
<pre><code>&lt;img id="myImage" src="small_144.jpg" width="640" /&gt;
var img = new Image();
img.src = "http://imghost/big_640_480.jpg";
img.onload = function() {
  document.getElementById('myImage').src = this.src;
}</code></pre>
<p>如此这般，待大图载入完成之后，利用js替换原小图的src，就完成了图片预加载效果。关键点是图片的onload事件利用。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/423/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Google AJAX Feed API的冷门用法</title>
		<link>http://www.ooso.net/archives/422</link>
		<comments>http://www.ooso.net/archives/422#comments</comments>
		<pubDate>Sat, 14 Jun 2008 03:14:28 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/422</guid>
		<description><![CDATA[Google AJAX Feed API是google提供的一个很实用的API，我经常用它来跨域获取某些rss feed并展现。但是使用前需要申请一个API KEY，然后才可以在指定网站上使用，如果有多级子域名的话，挨个申请key是一个很烦人的事情，所以也就有了下面说的冷门用法。
Google AJAX Feed API提供了针对Flash或javascript无效这两种环境的额外接口，其中一种可以支持jsonp方式调用，跨域调用feed就全靠它了。
jsonp调用代码示例
&#60;script&#62;

				<span class="readmore"><a href="http://www.ooso.net/archives/422" title="Google AJAX Feed API的冷门用法">阅读全文（351字）</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/apis/ajaxfeeds">Google AJAX Feed API</a>是google提供的一个很实用的API，我经常用它来跨域获取某些rss feed并展现。但是使用前需要申请一个API KEY，然后才可以在指定网站上使用，如果有多级子域名的话，挨个申请key是一个很烦人的事情，所以也就有了下面说的冷门用法。</p>
<p>Google AJAX Feed API提供了针对Flash或javascript无效这两种环境的额外接口，其中一种可以支持jsonp方式调用，跨域调用feed就全靠它了。</p>
<h3>jsonp调用代码示例</h3>
<pre><code>&lt;script&gt;
function foo(rss) {
	console.log(rss);
}
&lt;/script&gt;
&lt;script src="http://ajax.googleapis.com/ajax/services/feed/load?q=http%3A%2F%2Ffeed.ooso.net&#038;v=1.0&#038;callback=foo"&gt;&lt;/script&gt;</code></pre>
<p>这段代码中，指定了callback function为<b>foo</b>，所以我预先定义了一个function foo，运行时就可以在<a href="/?tag=firebug">firebug</a>的控制台里清楚的看到返回的json串结构。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/422/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>jQuerify书签</title>
		<link>http://www.ooso.net/archives/417</link>
		<comments>http://www.ooso.net/archives/417#comments</comments>
		<pubDate>Tue, 10 Jun 2008 00:35:19 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=417</guid>
		<description><![CDATA[我不知道有多少人在使用浏览器的书签，这东东有时候实在是很有用的，比如现在说到的jQuerify书签。
jQuerify书签的功能很简单，那就是在当前页面中直接载入jquery.js，并以一个粉红色的浮动层提示jquery已经载入。书签的源代码如下：
var s=document.createElement('script');
s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js');

				<span class="readmore"><a href="http://www.ooso.net/archives/417" title="jQuerify书签">阅读全文（1031字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>我不知道有多少人在使用浏览器的书签，这东东有时候实在是很有用的，比如现在说到的<a href="http://www.learningjquery.com/2008/06/updated-jquery-bookmarklet">jQuerify书签</a>。</p>
<p>jQuerify书签的功能很简单，那就是在当前页面中直接载入<a href="/?tag=jquery">jquery.js</a>，并以一个粉红色的浮动层提示jquery已经载入。书签的源代码如下：</p>
<pre><code>var s=document.createElement('script');
s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js');
if(typeof jQuery!='undefined') {
  var msg='This page was already jQuerified'
} else {
  document.getElementsByTagName('head')[0].appendChild(s);
  var msg='This page is now jQuerified'
}
var el=document.createElement('div');
  el.style.position='fixed';
  el.style.height='30';
  el.style.width='200';
  el.style.margin='0 auto 0 auto';
  el.id='jq-kswedberg';
  el.style.top='0';
  el.style.left='40%';
  el.style.padding='5px 10px 5px 10px';
  el.style.backgroundColor='#f99';
  el.innerHTML=msg;
var b=document.getElementsByTagName('body')[0];
b.appendChild(el);
window.setTimeout(function() {
  jQuery('#jq-kswedberg').fadeOut('slow',function() {
	jQuery(this).remove()
  });
}, 2500);
void(s);</code></pre>
<p>书签的链接在下边，如果是firefox的话，可以直接拖拽到firefox的书签栏上。</p>
<p>» <a href="javascript:var%20s=document.createElement('script');s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js');if(typeof%20jQuery!='undefined'){var%20msg='This%20page%20was%20already%20jQuerified'}else{document.getElementsByTagName('head')[0].appendChild(s);var%20msg='This%20page%20is%20now%20jQuerified'}var%20el=document.createElement('div');el.style.position='fixed';el.style.height='30';el.style.width='200';el.style.margin='0%20auto%200%20auto';el.id='jq-kswedberg';el.style.top='0';el.style.left='40%';el.style.padding='5px%2010px%205px%2010px';el.style.backgroundColor='#f99';el.innerHTML=msg;var%20b=document.getElementsByTagName('body')[0];b.appendChild(el);window.setTimeout(function()%20{jQuery('#jq-kswedberg').fadeOut('slow',function(){jQuery(this).remove()});},2500);void(s);">jQuerify</a> «</p>
<p>这里用到了<a href="http://www.ooso.net/index.php/archives/404">最近说到的google cdn</a>，速度可是足够快的。在使用书签之后，就可以尽情享受jquery的便利了，比如在firebug的console输入：</p>
<pre><code>$('body').background('#ffc')</code></pre>
<p>你会看到屏幕的背景色变黄了:)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/417/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery UI 1.5</title>
		<link>http://www.ooso.net/archives/419</link>
		<comments>http://www.ooso.net/archives/419#comments</comments>
		<pubDate>Mon, 09 Jun 2008 10:55:09 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=419</guid>
		<description><![CDATA[jQuery UI 1.5正式版发布，仍然保持了jquery简单易用的特点。
简化的API调用
这个版本最大的改进是重新定义了API规则，之前API提供的95%以上的方法都移除了，取而代之的是更简单的调用规则，每个plugin只保留了一个方法，以draggable为例：


				<span class="readmore"><a href="http://www.ooso.net/archives/419" title="jQuery UI 1.5">阅读全文（503字）</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://ui.jquery.com">jQuery UI 1.5正式版发布</a>，仍然保持了jquery简单易用的特点。</p>
<h3>简化的API调用</h3>
<p>这个版本最大的改进是重新定义了API规则，之前API提供的95%以上的方法都移除了，取而代之的是更简单的调用规则，每个plugin只保留了一个方法，以draggable为例：</p>
<ul>
<li>$(”div”).draggable() 创建一个拖拽对象</li>
<li>$(”div”).draggable(”destroy”) 删掉拖拽对象</li>
<li>$(”div”).draggable(”method”) 呼叫这个plugin的其它方法</li>
</ul>
<h3>jQuery UI的另外一个杀手级应用——ThemeRoller</h3>
<p><a href="http://ui.jquery.com/themeroller"><img src="http://jquery.com/blog/wp-content/uploads/2008/06/themeRoller_ui_full.png" alt="ThemeRoller" /></a></p>
<p>利用ThemeRoller，你只要几分钟就可以创建一个自己的主题，可以方便调整色彩并预览效果，在调整满意之后，还能将主题的图片和css以zip包下载，算是相当贴心的一个功能，只可惜从国内访问过去速度有些抱歉。</p>
<p><a href="/?tag=jquery">jQuery</a> UI 1.5的整个包包大小是1.78M，相比yui来说是有过之而无不及。好在包内的各个demo都是真材实料，相当精彩，大一点也无妨。</p>
<p>更详细的信息请看：<a href="http://jquery.com/blog/2008/06/09/jquery-ui-v15-released-focus-on-consistent-api-and-effects/">jQuery UI v1.5 Released, Focus on Consistent API and Effects</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/419/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>我也试用YUI Uploader</title>
		<link>http://www.ooso.net/archives/405</link>
		<comments>http://www.ooso.net/archives/405#comments</comments>
		<pubDate>Fri, 30 May 2008 01:58:11 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[yui]]></category>
		<category><![CDATA[上传]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/405</guid>
		<description><![CDATA[早就知道YUI里面有Uploader这么一个上传组件，可以按住ctrl多选文件上传(就像flickr那样的上传)，并且可以支持进度条，这样对用户来说是相当方便的。
由于YUI Uploader是利用javascript + flash实现的，所以用户的浏览器上只要有flash player就可以使用，也不需要额外安装别的插件了，这显然也是YUI Uploader的一大优势。
我的YUI Uploader试用之旅


				<span class="readmore"><a href="http://www.ooso.net/archives/405" title="我也试用YUI Uploader">阅读全文（1128字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>早就知道<a href="http://developer.yahoo.com/yui/">YUI</a>里面有Uploader这么一个上传组件，可以按住ctrl多选文件上传(就像flickr那样的上传)，并且可以支持进度条，这样对用户来说是相当方便的。</p>
<p>由于YUI Uploader是利用javascript + <a href="/?tag=flash">flash</a>实现的，所以用户的浏览器上只要有flash player就可以使用，也不需要额外安装别的插件了，这显然也是YUI Uploader的一大优势。</p>
<h3>我的YUI Uploader试用之旅</h3>
<ul>
<li>首先<a href="http://developer.yahoo.com/yui/examples/uploader/assets/uploader-advanced.zip">下载Uploader批量上传页的html源文件</a></li>
<li>解压后放置在你的web服务器上，比如我就是在自己的台式机上安装了一个xampp</li>
<li>现在需要一个处理上传操作的后端程序，在这里我是用php简单的写了一个，如果你用别的语言也是不成问题的。在<b>uploader-advanced-source.html</b>的同一目录下放置<b>upload.php</b>，源文件如下：
<pre><code>foreach ($_FILES as $fieldName =&gt; $file) {
	$name = md5(microtime());
	move_uploaded_file($file['tmp_name'], "./" . $name . '.jpg');
	echo $fieldName . ' uploaded!';
}</code></pre>
</li>
<li>下载http://yui.yahooapis.com/2.5.1/build/uploader/assets/uploader.swf，然后把<b>uploader.swf</b>放在和<b>upload.php</b>的同一目录下，这是为了避免javascript和flash交互过程中出现跨域问题。</li>
<li>修改uploader-advanced-source.html
<ul>
<li>把&#8221;YOUR UPLOAD URL GOES HERE&#8221;替换成你的upload.php所在的url，比如我的就是http://localhost/yui/upload.php
<li>把YAHOO.widget.Uploader.SWFURL修改成你的uploader.swf实际url</li>
</ul>
</li>
<li>现在访问uploader-advanced-source.html，试试批量上传功能吧</li>
</ul>
<h3>试用的一点补充</h3>
<ul>
<li>这个例子里面的php源文件只是考虑上传n张jpg文件的情况，可根据实际情况调整。</li>
<li>上传后的文件名是md5随机加密的，在upload.php同一目录可见</li>
<li>由于flash的bug，运行在windows下的firefox无法正确获得flash传递过来的cookie，如果上传应用对cookie有依赖，可能会需要做额外的处理。</li>
<li><del>为了能够确切的显示上传进度条，可能需要php 5.2的<a href="http://pecl.php.net/package/APC">apc</a>扩展支持</del></li>
<li>上传进度由flash完成</li>
<li>YUI 2.5.2已经附上uploader.swf的actionscript，有一定的学习价值</li>
</ul>
<h3>贴一张Uploader使用效果图</h3>
<p><img src="http://developer.yahoo.com/yui/examples/uploader/assets/uploader-advanced.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/405/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>利用Google Ajax Library API加速常用js类库的载入</title>
		<link>http://www.ooso.net/archives/404</link>
		<comments>http://www.ooso.net/archives/404#comments</comments>
		<pubDate>Wed, 28 May 2008 06:56:58 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/404</guid>
		<description><![CDATA[google前不久推出了Google Ajax Library API，说白了就是提供几个知名js库的host，目前有:

jQuery
prototype

				<span class="readmore"><a href="http://www.ooso.net/archives/404" title="利用Google Ajax Library API加速常用js类库的载入">阅读全文（497字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>google前不久推出了<a href="http://googleajaxsearchapi.blogspot.com/2008/05/speed-up-access-to-your-favorite.html">Google Ajax Library API</a>，说白了就是提供几个知名js库的host，目前有:</p>
<ul>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#jquery">jQuery</a></li>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#prototype">prototype</a></li>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#script_aculo_us">script.aculo.us</a></li>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#mootools">MooTools</a></li>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#dojo">dojo</a></li>
</ul>
<p><a href="/?tag=google">google</a>提供的这批js类库都有使用cdn，同时提供压缩和非压缩版本，并gzip输出。比如Prototype在未压缩前是124k，压缩后则只有30k，而jquery经过瘦身以后，也是从97k降到了16k。</p>
<p>这项服务的意义在于，如果各个网站都使用google提供的某个js类库比如jquery，那么由于浏览器缓存的缘故，用户就可以避免下载相同内容的js，这样也就能提高js的载入速度了。</p>
<h2>google ajax library api使用方法</h2>
<p><b>传统方式</b></p>
<pre><code>&lt;script src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js"&gt;&lt;/script&gt;</code></pre>
<p><b>使用google.load载入</b></p>
<pre><code>&lt;script src="http://www.google.com/jsapi"&gt;&lt;/script&gt;
&lt;script&gt;
// Load jQuery
google.load("jquery", "1");
&lt;/script&gt;</code></pre>
<p>下面是一段小小的视频用来解释它的工作原理:<br />
<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/4F4Jb1ssEvI&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/4F4Jb1ssEvI&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<h2>Update</h2>
<p>昨天在某个小页面上尝试引入google提供的jquery.min.js，结果让我大失所望，虽然有时候访问速度很快，但是偶尔能刷出22秒以上的响应时间，如果是这样不稳定的话，那么实在是不敢放心使用。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/404/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>wordpress plugin &#8211; search engine related posts</title>
		<link>http://www.ooso.net/archives/392</link>
		<comments>http://www.ooso.net/archives/392#comments</comments>
		<pubDate>Fri, 02 May 2008 05:42:00 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=392</guid>
		<description><![CDATA[Table of content

Description
Usage

				<span class="readmore"><a href="http://www.ooso.net/archives/392" title="wordpress plugin &#8211; search engine related posts">阅读全文（841字）</a></span>]]></description>
			<content:encoded><![CDATA[<h3>Table of content</h3>
<ul>
<li><a href="#Description">Description</a></li>
<li><a href="#Usage">Usage</a></li>
<li><a href="#Download">Download</a></li>
<li><a href="#History">History</a></li>
<li><a href="#Link">Link</a></li>
</ul>
<h3>Description</h3>
<p><b>English version</b></p>
<p>When someone is referred from a search engine like Google, the plugin show your blog content matched the terms they search for.</p>
<p><b>中文说明</b></p>
<p>当用户从google搜索到你的博客上，这个wordpress <a href="/?tag=plugin">插件</a>会根据用户搜索的关键词显示你的博客上更多的相关内容。目前也只对google生效，下一个版本将对baidu生效。</p>
<p>这个插件完全使用javascript加上google的api完成，不需要占用服务器端的资源，环保且安全。</p>
<h3 id="Usage">Usage</h3>
<p><b>English version:</b></p>
<ul>
<li>unzip it</li>
<li>Put <b>&lt;div style=&#8221;display:none&#8221; id=&#8221;search_content&#8221;&gt;&lt;/div&gt;</b> at the place in your template where you want the list of related posts</li>
<li>Copy search_related_posts.php to direcotry wp-contents/plugin and activate the plugin.</li>
<li>done!</li>
</ul>
<p><b>中文说明:</b></p>
<ul>
<li>解压</li>
<li>在wordpress模板中添加一个id为search_content的html标签，比如
<pre><code>&lt;div id="search_content" style="display:none;"&gt;
&lt;h1&gt;相关搜索结果&lt;/h1&gt;
&lt;/div&gt;</code></pre>
</li>
<li>复制search_related_posts.php到wp-contents/plugin目录，并激活插件.</li>
<li>done! 现在你可以试着从google搜索上先搜到自己的博客，然后点击进去看看插件的效果。</li>
</ul>
<h3 id="Download">Download</h3>
<p><a href="http://wordpress.org/extend/plugins/search-engine-related-posts/">latest search engine related posts</a></p>
<h3 id="History">History</h3>
<ul>
<li><a href="http://www.ooso.net/index.php/archives/516">search engine related posts 1.2</a></li>
<li><a href="http://www.ooso.net/index.php/archives/392">search engine related posts 1.0</a></li>
</ul>
<h3 id="Link">Link</h3>
<ul>
<li><a href="http://wordpress.org/extend/plugins/search-engine-related-posts/">search engine related posts at wordpress.org</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/392/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>AIR入门者推荐阅读 &#8212; AIR for JavaScript Developers</title>
		<link>http://www.ooso.net/archives/390</link>
		<comments>http://www.ooso.net/archives/390#comments</comments>
		<pubDate>Sat, 26 Apr 2008 03:36:24 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[air]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/390</guid>
		<description><![CDATA[O&#8217;reilly的电子书 AIR for JavaScript 更新了。可以在这里免费下载。
这本书按照 创造共用方式授权，这意味着你不仅仅可以合法的免费下载，还可以按照自己的意愿做些修改。我翻看了一些章节，这本书对于AIR的html + js开发者来说，是一本很好的入门教程。这次更新的内容还包括AIR的安全模型介绍。
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.insideria.com/assets_c/2008/04/airbookcover-thumb-100x165.png" align="left" /><a href="http://onair.adobe.com/blogs/onair/2008/04/17/adobe-air-for-javascript-developers-pocketguide-now-available/">O&#8217;reilly的电子书 AIR for JavaScript 更新</a>了。可以<a href="http://www.insideria.com/upload/2008/04/weekend_reading/AIRforJSDevPocketGuide.pdf">在这里免费下载</a>。</p>
<p>这本书按照 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">创造共用方式授权</a>，这意味着你不仅仅可以合法的免费下载，还可以按照自己的意愿做些修改。我翻看了一些章节，这本书对于AIR的html + js开发者来说，是一本很好的入门教程。这次更新的内容还包括<a href="/?tag=air">AIR</a>的安全模型介绍。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/390/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adobe AIR教程for HTML/JAVASCRIPT开发者</title>
		<link>http://www.ooso.net/archives/354</link>
		<comments>http://www.ooso.net/archives/354#comments</comments>
		<pubDate>Mon, 24 Mar 2008 00:52:15 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[dreamweaver]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=354</guid>
		<description><![CDATA[最近不是太有空，加上泡网络时间太长，对新鲜事物的敏感度有所下降。因此当Adobe出了个AIR，我还是兴趣缺缺，没功夫去试用。
但是兴趣这玩意可能也有些生理周期，前几天突然来了神把这个AIR好好端详一番，却发觉网上暂时没有适合我这种初级新手看的AIR教程，鼓捣了几天，仍然是毫无进展，我甚至连个hello world之类的简单air package都打不出来。也许小时候特意去踩过狗屎，因此现在我又走上狗屎运，在即将放弃的前一刻找到了一篇比较细致的AIR教程，记录下来，好记性不如烂键盘。
俺目前的情况是，没有安装Dreamweaver，Flash之类的软件，只用一些免费软件，所以我只打算写html/javascript之类的代码，flash方面的暂时不涉及，另外adobe提供的dreamweaver air sdk也是用不上，可谓一穷二白。

				<span class="readmore"><a href="http://www.ooso.net/archives/354" title="Adobe AIR教程for HTML/JAVASCRIPT开发者">阅读全文（1679字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近不是太有空，加上泡网络时间太长，对新鲜事物的敏感度有所下降。因此当Adobe出了个<a href="/index.php?tag=air">AIR</a>，我还是兴趣缺缺，没功夫去试用。</p>
<p>但是兴趣这玩意可能也有些生理周期，前几天突然来了神把这个AIR好好端详一番，却发觉网上暂时没有适合我这种初级新手看的AIR教程，鼓捣了几天，仍然是毫无进展，我甚至连个hello world之类的简单air package都打不出来。也许小时候特意去踩过狗屎，因此现在我又走上狗屎运，在即将放弃的前一刻找到了一篇比较细致的AIR教程，记录下来，好记性不如烂键盘。</p>
<p>俺目前的情况是，没有安装Dreamweaver，Flash之类的软件，<a href="http://www.ooso.net/index.php/archives/178">只用一些免费软件</a>，所以我只打算写html/javascript之类的代码，flash方面的暂时不涉及，另外adobe提供的dreamweaver air sdk也是用不上，可谓一穷二白。</p>
<h3>第一步 &#8212; 安装Adobe AIR和Adobe AIR SDK</h3>
<p>如果你还没装，可以<a href="http://www.adobe.com/go/air">去网站上下载Adobe AIR Runtime和Adobe AIR SDK</a>.</p>
<p>装完Adobe AIR SDK以后，为了方便，你还需要把它的bin目录添加到系统的path变量下，这样你可以直接运行它的打包和debug工具。</p>
<p><span id="more-354"></span></p>
<h3>第二步 &#8212; 创建一些目录</h3>
<p>接下来创建一些目录来放置代码，比如：</p>
<blockquote><p>/appname/<br />
/appname/source/<br />
/appname/source/icons/<br />
/appname/build/
</p></blockquote>
<h3>第三步 &#8212; 创建一个Application Descriptor</h3>
<p>AIR需要一个Application Descriptor来描述它的内容和属性，这是一个XML格式的文件。</p>
<p>它的文件名是<strong>application.xml</strong>，放置在<strong>/appname/source/</strong>目录。</p>
<pre><code>&lt;application xmlns="http://ns.adobe.com/air/application/1.0"&gt;
  &lt;id&gt;com.example.appname &lt;/id&gt;
  &lt;version&gt;1.0 &lt;/version&gt;
  &lt;filename&gt;AppName &lt;/filename&gt;
  &lt;initialWindow&gt;
    &lt;content&gt;index.html &lt;/content&gt;
    &lt;visible&gt;true &lt;/visible&gt;
    &lt;width&gt;600&lt;/width&gt;
    &lt;height&gt;600&lt;/height&gt;
  &lt;/initialWindow&gt;
  &lt;icon&gt;
    &lt;image16x16&gt;icons/appname-16.png&lt;/image16x16&gt;
    &lt;image32x32&gt;icons/appname-32.png&lt;/image32x32&gt;
    &lt;image48x48&gt;icons/appname-48.png&lt;/image48x48&gt;
    &lt;image128x128&gt;icons/appname-128.png&lt;/image128x128&gt;
  &lt;/icon&gt;
&lt;/application&gt;</code></pre>
<p>这个xml文件很有些复杂，也很有一些历史，最可恶的是AIR beta1到后来的beta2乃至最后的1.0，从来就没统一过，变了又变，所以我在网上找到的一些教程都失效了，只能针对早期的beta版使用。</p>
<p>关于它的详细内容，可以参考模板，在adobe sdk安装目录下的<strong>templates/descriptor-template.xml</strong>.</p>
<h3>第四步 &#8212; 创建你的应用</h3>
<p>下一步，创建一个index.html.</p>
<pre><code>&lt;html&gt;
&lt;head&gt;
  &lt;title&gt;My Window Title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h1&gt;Hello World&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>如果需要添加css,javascript以及图片，可以在/appname/source/下创建子目录放进去，就像平常写web应用那样。</p>
<h3>第五步 &#8212; 测试你的应用</h3>
<p>如果你已经配置好了path环境变量（见第一步,需要重启电脑），下面很简单，首先打开一个命令行窗口，进入/appname/source/目录，然后运行：</p>
<blockquote><p>adl application.xml</p></blockquote>
<p>一切顺利的话，你的应用应该已经跑起来了，一个弹出的AIR应用窗口好不容易的展示它的第一次。</p>
<h3>第六步 &#8212; 打包你的AIR应用</h3>
<p>在很多磕磕碰碰，反复调试之后，你可能已经完成了应用，现在你准备向朋友或者网上的菜鸟炫耀一下你的处女作。那么我们开始打包，这一步其实比我想象的要简单。</p>
<p>首先需要生成一个签名Certificate，并放置在应用的根目录<strong>/appname/</strong></p>
<blockquote><p>adt -certificate -cn SelfSign -ou Dev -o &#8220;Example&#8221; -c US 2048-RSA cert.pfx 换成你的密码</p></blockquote>
<p>然后就是进入source目录打包：</p>
<blockquote><p>adt -package -storetype pkcs12 -keystore ../cert.pfx ../build/AirTest.air application.xml .</p></blockquote>
<p>不出意外的话，会当场生成一个<strong>AppName.air</strong>文件，你可以安装一下感受亲手做的第一个Air应用。</p>
<p>原文：<a href="http://www.petefreitag.com/item/667.cfm">Adobe AIR Tutorial for HTML / JavaScript Developers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/354/feed</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>JQUERY和YUI混用出现的问题</title>
		<link>http://www.ooso.net/archives/347</link>
		<comments>http://www.ooso.net/archives/347#comments</comments>
		<pubDate>Sat, 22 Mar 2008 03:06:30 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.ooso.net/?p=347</guid>
		<description><![CDATA[有道是一山不容二虎，其实我本不该把JQUERY和YUI夹杂在一块使用，虽然它们各有长短，结合使用的确能够相得益彰，但是暗地里还存着什么矛盾和冲突，这就不是随便刷新一下网页能够看出来的。
列一下最近碰到的问题，备忘。
混用时，YUI的Event在ie6下表现异常
下面代码中，没能在window.onload事件中弹出一个alert弹出窗口。

				<span class="readmore"><a href="http://www.ooso.net/archives/347" title="JQUERY和YUI混用出现的问题">阅读全文（342字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>有道是一山不容二虎，其实我本不该把<a href="/index.php?tag=jquery">JQUERY</a>和<a href="/index.php?tag=yui">YUI</a>夹杂在一块使用，虽然它们各有长短，结合使用的确能够相得益彰，但是暗地里还存着什么矛盾和冲突，这就不是随便刷新一下网页能够看出来的。</p>
<p>列一下最近碰到的问题，备忘。</p>
<h3>混用时，YUI的Event在ie6下表现异常</h3>
<p>下面代码中，没能在window.onload事件中弹出一个alert弹出窗口。</p>
<pre><code>&lt;script&gt;
YAHOO.util.Event.on(window, 'load', function() {alert('hello');});
&lt;/script&gt;</code></pre>
<p>猜想是jQuery重写了window.onload事件引起冲突，解决办法，使用jQuery的event。</p>
<pre><code>&lt;script&gt;
jQuery.event.add(window, "load", function() {alert('hello');});
&lt;/script&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/347/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>inline-js 0.4 —— wordpress plugin</title>
		<link>http://www.ooso.net/archives/379</link>
		<comments>http://www.ooso.net/archives/379#comments</comments>
		<pubDate>Mon, 10 Mar 2008 16:30:25 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/379</guid>
		<description><![CDATA[Inline-js plugin minor update. It now work fine with exec-php plugin.
Download
Inline-js 0.4
详细信息

				<span class="readmore"><a href="http://www.ooso.net/archives/379" title="inline-js 0.4 —— wordpress plugin">阅读全文（107字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>Inline-js plugin minor update. It now work fine with exec-php plugin.</p>
<h3>Download</h3>
<p><a href="http://customcode.googlecode.com/files/inline-js.latest.zip">Inline-js 0.4</a></p>
<h3>详细信息</h3>
<p><a href="http://www.ooso.net/index.php/inline-js">inline-js wordpress plugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/379/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>YUI 2.5.0发布</title>
		<link>http://www.ooso.net/archives/382</link>
		<comments>http://www.ooso.net/archives/382#comments</comments>
		<pubDate>Thu, 21 Feb 2008 07:02:46 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/382</guid>
		<description><![CDATA[YUI 2.5.0发布。
2月20日，YUI Team发布了YUI的最新版本2.5.0。增加了6个全新的组件：Layout Manager, Uploader(结合Flash和Javascript的多文件上传引擎), Resize Utility, ImageCropper, Cookie Utility和ProfilerViewer Control。同时这一版还提升了DataTable Control的功能和Slider Control增加了双滑块功能。
这个版本中的Uploader以及ImageCropper应该是相当有用的控件

				<span class="readmore"><a href="http://www.ooso.net/archives/382" title="YUI 2.5.0发布">阅读全文（432字）</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="/?tag=yui">YUI</a> 2.5.0发布。</p>
<blockquote><p>2月20日，YUI Team发布了YUI的最新版本2.5.0。增加了6个全新的组件：Layout Manager, Uploader(结合Flash和Javascript的多文件上传引擎), Resize Utility, ImageCropper, Cookie Utility和ProfilerViewer Control。同时这一版还提升了DataTable Control的功能和Slider Control增加了双滑块功能。</p></blockquote>
<p>这个版本中的Uploader以及ImageCropper应该是相当有用的控件</p>
<ul>
<li>Uploader采用<a href="/?tag=javascript">javascript</a>和flash，不仅支持多文件上传，更可以直观的查看上传进度，以前虽然有类似的代码，但是组件化的代码显然通用性和可用性更好。</li>
<li>ImageCroper可用于制作图片切片，基于YUI的Dragdrop和Resize</li>
</ul>
<h3>与YUI 2.5.0相关的链接</h3>
<ul>
<li><a href="http://developer.yahoo.com/yui">http://developer.yahoo.com/yui</a></li>
<li><a href="http://www.yuiblog.cn/2008/02/21/47/">yuiblog.cn</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/382/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>用来看新浪新闻的greasemonkey脚本</title>
		<link>http://www.ooso.net/archives/302</link>
		<comments>http://www.ooso.net/archives/302#comments</comments>
		<pubDate>Mon, 18 Feb 2008 13:23:36 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[新浪]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/302</guid>
		<description><![CDATA[刚从灾区长沙回到北京，那段时间虽然是隔三岔五的停电停水，俺还没忘趁着来电爬到新浪上面看看近期新闻，也好对最近的形势有些了解。闲着无聊写了个greasemonkey脚本，把新浪的新闻页右边那块没营养的内容统统隐藏掉。
放出来给需要的同学下载。
安装这个脚本的步骤


				<span class="readmore"><a href="http://www.ooso.net/archives/302" title="用来看新浪新闻的greasemonkey脚本">阅读全文（248字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>刚从灾区长沙回到北京，那段时间虽然是隔三岔五的停电停水，俺还没忘趁着来电爬到新浪上面看看近期新闻，也好对最近的形势有些了解。闲着无聊写了个<a href="/index.php?tag=greasemonkey">greasemonkey</a>脚本，把新浪的新闻页右边那块没营养的内容统统隐藏掉。</p>
<p>放出来给需要的同学下载。</p>
<h3>安装这个脚本的步骤</h3>
<ul>
<li>首先你必须是使用<a href="/index.php?tag=firefox">firefox</a>浏览器</li>
<li><a href="https://addons.mozilla.org/zh-CN/firefox/addon/748">安装greasemonkey插件</a></li>
<li><a href="http://customcode.googlecode.com/files/NewsSina.user.js">下载俺的NewsSina greasemonkey脚本</a>，如果你已经安装好greasemonkey，点击前面的链接应该会弹出一个安装窗口</li>
<li>去新浪的新闻页上看看，右边的内容还有吗？</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/302/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>YUI中国本地版</title>
		<link>http://www.ooso.net/archives/370</link>
		<comments>http://www.ooso.net/archives/370#comments</comments>
		<pubDate>Sun, 20 Jan 2008 08:31:02 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/370</guid>
		<description><![CDATA[去年yahoo提供了公开的yui主机，这样即便自己没有server也可以直接使用yui的便利。但是由于主机在国外，访问速度不是很理想。现在终于有了本地版的yui hosting，访问速度有大的飞跃。
2008年1月14日雅虎中国正式发布本地版的YUI 2.4.1，今后将与YUI保持同步更新。这对国内的YUI使用者来说绝对是一个好消息，本地版的YUI采用了本地CDN部署，对于国内用户来说访问速度更快(图一)，比较访问国际YUI主机的速度(图二)快了至少5倍以上。
使用firebug查看载入速度


				<span class="readmore"><a href="http://www.ooso.net/archives/370" title="YUI中国本地版">阅读全文（259字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>去年<a href="/index.php?tag=yahoo">yahoo</a>提供了公开的yui主机，这样即便自己没有server也可以直接使用yui的便利。但是由于主机在国外，访问速度不是很理想。现在终于有了本地版的yui hosting，访问速度有大的飞跃。</p>
<blockquote><p>2008年1月14日雅虎中国正式发布本地版的YUI 2.4.1，今后将与YUI保持同步更新。这对国内的YUI使用者来说绝对是一个好消息，本地版的YUI采用了本地CDN部署，对于国内用户来说访问速度更快(图一)，比较访问国际YUI主机的速度(图二)快了至少5倍以上。</p></blockquote>
<h2>使用<a href="/index.php?tag=firebug">firebug</a>查看载入速度</h2>
<p><img width="98%" src="http://www.yuiblog.cn/wp-content/uploads/2008/01/yui2_1_4_all_js_files.PNG" alt="cn yui host" /></p>
<p>原文：<a href="http://www.yuiblog.cn/2008/01/14/yui%e6%9c%ac%e5%9c%b0%e7%89%88%e5%8f%91%e5%b8%83/">YUI Blog China</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/370/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>YUI 2.3.0的Rich Text Editor</title>
		<link>http://www.ooso.net/archives/367</link>
		<comments>http://www.ooso.net/archives/367#comments</comments>
		<pubDate>Sun, 05 Aug 2007 00:05:56 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/367</guid>
		<description><![CDATA[YUI 2.3.0正式发布了。这个版本新增了一些新的组件，其中最大的亮点是它的Rich Text Editor (beta)，样式见下图：


YUI Rich Text Editor的特点

				<span class="readmore"><a href="http://www.ooso.net/archives/367" title="YUI 2.3.0的Rich Text Editor">阅读全文（299字）</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.yahoo.com/yui/">YUI</a> 2.3.0正式发布了。这个版本新增了一些新的组件，其中最大的亮点是它的Rich Text Editor (beta)，样式见下图：<br />
<img src='http://www.ooso.net/wp-content/uploads/2007/08/rte.gif' alt='YUI Rich Text Editor' /></p>
<ul>
<h1>YUI Rich Text Editor的特点</h1>
<li><a href="http://developer.yahoo.com/yui/articles/gbs/">标识为A级的浏览器</a>支持良好，跨浏览器也有很好的表现</li>
<li>扩充方便，可以添加你自己的button</li>
<li>从图片上看，这个编辑器还支持直接从flickr抓取图片——可惜flickr在国内已经被和谐&#8230;</li>
</ul>
<ul>
<h1>YUI 2.3.0另外新增的5个组件</h1>
<li>Base CSS</li>
<li>YUILoader Utility (beta)</li>
<li>ImageLoader Utility (experimental)</li>
<li>Color Picker Control (beta)</li>
<li>YUI Test Utility (beta)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/367/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>javascript在ie和firefox下的一些差异</title>
		<link>http://www.ooso.net/archives/362</link>
		<comments>http://www.ooso.net/archives/362#comments</comments>
		<pubDate>Tue, 31 Jul 2007 00:40:30 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[ie]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/362</guid>
		<description><![CDATA[javascript在ie和firefox下,运行结果有一些差异。下面把最近碰到的情况做个记录，以后也会不断补充以备忘。

object操作
firefox:可支持

				<span class="readmore"><a href="http://www.ooso.net/archives/362" title="javascript在ie和firefox下的一些差异">阅读全文（395字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>javascript在ie和<a href="/index.php?tag=firefox">firefox</a>下,运行结果有一些差异。下面把最近碰到的情况做个记录，以后也会不断补充以备忘。</p>
<ul>
<h2>object操作</h2>
<li>firefox:可支持
<pre><code>var obj = { 'key' : 'aaa', }</code></pre>
</li>
<li>ie:不支持
<pre><code>var obj = { 'key' : 'aaa', }</code></pre>
<p> 会报javascript错误,最后的&#8221;<strong>,</strong>&#8220;必须去掉</li>
<h2><a href="/index.php?tag=javascript">javascript</a>对select元素的option操作</h2>
<li>firefox:可直接设置
<pre><code>option.text = 'foooooooo';</code></pre>
</li>
<li>ie:只能设置
<pre><code>option.innerHTML = 'fooooooo';</code></pre>
</li>
<h2>删除一个select的option</h2>
<li>firefox:可以
<pre><code>select.options.remove(selectedIndex);</code></pre>
</li>
<li>ie7:可以用
<pre><code>select.options[i] = null;</code></pre>
</li>
<li>ie6:需要写
<pre><code>select.options[i].outerHTML = null;</code></pre>
</li>
</ul>
<p>真是万恶的浏览器。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/362/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>可以用button代替input type=&#8221;submit&#8221;吗</title>
		<link>http://www.ooso.net/archives/352</link>
		<comments>http://www.ooso.net/archives/352#comments</comments>
		<pubDate>Mon, 16 Jul 2007 23:37:24 +0000</pubDate>
		<dc:creator>Volcano</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.ooso.net/index.php/archives/352</guid>
		<description><![CDATA[在ie下，&#60;button&#62;标记恐怕还存在几个不大不小的问题。

在一个表单里，如果有一个以上&#8221;submit&#8221;类型的&#60;button&#62;标签存在，在表单被提交时，不管你点击哪个&#60;button&#62;，所有&#60;button&#62;的值都会被post/get。
&#60;button&#62;的缺省type属性被设置为&#8221;button&#8221;，但是在A级别浏览器下，应该设置为&#8221;submit&#8221;才对

				<span class="readmore"><a href="http://www.ooso.net/archives/352" title="可以用button代替input type=&#8221;submit&#8221;吗">阅读全文（391字）</a></span>]]></description>
			<content:encoded><![CDATA[<p>在ie下，&lt;button&gt;标记恐怕还存在几个不大不小的问题。</p>
<ol>
<li>在一个表单里，如果有一个以上&#8221;submit&#8221;类型的&lt;button&gt;标签存在，在表单被提交时，不管你点击哪个&lt;button&gt;，所有&lt;button&gt;的值都会被post/get。</li>
<li>&lt;button&gt;的缺省type属性被设置为&#8221;button&#8221;，但是在A级别浏览器下，应该设置为&#8221;submit&#8221;才对</li>
<li>如果你用javascript去访问&lt;button&gt;的value属性，IE却返回了&lt;button&gt;的innerHTML属性，很让人恼火。 (可以使用&#8221;getAttributeNode&#8221;方法来避免.)</li>
</ol>
<p>例如，一段<a href="index.php?tag=html">HTML</a>:</p>
<pre><code>&lt;form&gt;
&lt;button type="submit" value="1" name="action-1"&gt;text 1&lt;/button&gt;
&lt;button type="submit" value="2" name="action-2"&gt;text 2&lt;/button&gt;
&lt;/form&gt;</code></pre>
<p>在IE下，上面两个button的数据都会被提交。并且ie会提交这两个button的innerText而不是value。而其它浏览器仅仅提交你点击的那个button。</p>
<h1>以上，应该尽量避免使用button标记。</h1>
]]></content:encoded>
			<wfw:commentRss>http://www.ooso.net/archives/352/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

