<?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/48615/rss</id><updated>2011-10-15T12:18:06Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/48615/rss"/><entry><id>http://www.cnblogs.com/liuju150/archive/2011/06/25/html5_Canvas.html</id><title type="text">HTML5学习之Canvas标记试例</title><summary type="text">html5当道.到处都是关于html5的新闻和报道.感觉自己还不去了解下html5就真的快敢不上时代的步伐了所以今天星期六.放假休息在家.没事看了下网上的相关博客.还有一些试例.只不过看归看.不自己动手还是像在喝鸡汤--不经过大脑的.html5新加了很多标记和相关的功能.什么Web Sql DataBase,Web Storage,Web Socket等相关功能还有一些新标记:Canvas,声音,...</summary><published>2011-06-25T12:27:00Z</published><updated>2011-06-25T12:27:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2011/06/25/html5_Canvas.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2011/06/25/html5_Canvas.html"/><content type="html">&lt;p&gt;html5当道.到处都是关于html5的新闻和报道.感觉自己还不去了解下html5就真的快敢不上时代的步伐了&lt;/p&gt;&lt;p&gt;所以今天星期六.放假休息在家.没事看了下网上的相关博客.还有一些试例.&lt;/p&gt;&lt;p&gt;只不过看归看.不自己动手还是像在喝鸡汤--不经过大脑的.&lt;/p&gt;&lt;p&gt;html5新加了很多标记和相关的功能.&lt;/p&gt;&lt;p&gt;什么Web Sql DataBase,Web Storage,Web Socket等相关功能&lt;/p&gt;&lt;p&gt;还有一些新标记:Canvas,声音,视频等.......&lt;/p&gt;&lt;p&gt;今天我主要也就看了下Canvas标记,所以自己也来写写Demo.&lt;/p&gt;&lt;p&gt;由于才开始学习.所以问题也会有很多.希望大家手下留情.&lt;/p&gt;&lt;p&gt;主要学习还是看了下&lt;a href="https://developer.mozilla.org/cn/Canvas_tutorial"&gt;mozilla&lt;/a&gt;发布的一个Canvas:&lt;a target="_blank" href="https://developer.mozilla.org/cn/Canvas_tutorial"&gt;https://developer.mozilla.org/cn/Canvas_tutorial&lt;/a&gt;&lt;/p&gt;&lt;p&gt;自己就做了一个小试例.只不过在Canvas标记中还只主要用到一个方法.其它很牛的方法也慢慢学习之中&lt;/p&gt;&lt;p&gt;下面的例子是我用Canvas的&lt;strong&gt;drawImage方法做的一个图片切换效果&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;演示地址1:&amp;nbsp;&lt;a target="_blank" href="http://liuju150.cacacoo.com/ImageSwitchUp.htm"&gt;http://liuju150.cacacoo.com/ImageSwitchUp.htm&lt;/a&gt;&lt;/p&gt;&lt;p&gt;演示地址2:&lt;a target="_blank" href="http://liuju150.cacacoo.com/ImageSwitch.htm"&gt;http://liuju150.cacacoo.com/ImageSwitch.htm&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Web Sql DataBase示例:&lt;a target="_blank" href="http://liuju150.cacacoo.com/WebSql.htm"&gt;http://liuju150.cacacoo.com/WebSql.htm&lt;/a&gt;&lt;/p&gt;&lt;p&gt;上代码:&lt;/p&gt;&lt;div onclick="cnblogs_code_show('66fe5a80-ed19-4d01-8239-d5d591b6805f')" style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;img style="display: none;" onclick="cnblogs_code_hide('66fe5a80-ed19-4d01-8239-d5d591b6805f',event)" id="code_img_opened_66fe5a80-ed19-4d01-8239-d5d591b6805f" class="code_img_opened" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /&gt;&lt;div class="cnblogs_code_hide" id="cnblogs_code_open_66fe5a80-ed19-4d01-8239-d5d591b6805f"&gt;&lt;div&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;DOCTYPE html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _LoadImage &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; []; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;/&amp;lt;summary&amp;gt;加载完成的Image对像数组&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _NextImageIndex &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;/&amp;lt;summary&amp;gt;下次要显示的图片在_LoadImage的索引位置&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; LoadImageURL(ImageCount) {&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;/&amp;lt;summary&amp;gt;初始化的时候要得到所有图片的地址&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;/&amp;lt;param name="ImageCount" type="number"&amp;gt;图片的个数&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _InitImageURL &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; [];&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; i &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; parseInt(ImageCount); i&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;++&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _url &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;Image/&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (i &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;).toString() &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.jpg&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;            _InitImageURL.push(_url);&lt;br /&gt;        }&lt;br /&gt;        LoadImage(_InitImageURL);&lt;br /&gt;    } &lt;br /&gt;    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; LoadImage(ImageURL) {&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;/&amp;lt;summary&amp;gt;用图片地址初始化Image对像&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;/&amp;lt;param name="ImageURL" type="array"&amp;gt;图片的地址数组&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;while&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (ImageURL.length &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; img &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; Image();&lt;br /&gt;            img.src &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; ImageURL.pop();&lt;br /&gt;            img.onload &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; () {&lt;br /&gt;                _LoadImage.push(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;                PushMsg(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;Push _LoadImage:&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.src);&lt;br /&gt;                &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (_LoadImage.length &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;==&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;11&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) {&lt;br /&gt;                    ImageSwitch.Images &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _LoadImage;&lt;br /&gt;                    ImageSwitch.Canvas &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; document.getElementById(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;CanvasSwitch&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;                    ImageSwitch.Show();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; PushMsg(message) {&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;/&amp;lt;summary&amp;gt;日志输出&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;/&amp;lt;param name="message" type="string"&amp;gt;日志内容&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _span &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; document.createElement(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;span&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;        _span.innerText &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; message;&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; msg &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; document.getElementById(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;msg&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;        msg.appendChild(_span);&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _br &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; document.createElement(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;br&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;        msg.appendChild(_br);&lt;br /&gt;    }&lt;br /&gt;    window.onload &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; () {&lt;br /&gt;        LoadImageURL(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;11&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; ImageSwitch &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; Object();&lt;br /&gt;    ImageSwitch.WidthCount &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;11&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;在X坐标上分成几等份&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    ImageSwitch.HeightCount &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;8&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;在Y坐标上分成几等份&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    ImageSwitch.Canvas &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; Object();&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;Canvas标记对象&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    ImageSwitch.Images &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; [];&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;要显示的图片对象&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    ImageSwitch.NextImageIndex &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;下个要显示的图片对象在Images中的索引位置&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    ImageSwitch.SwitchTime &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1000&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;图片切换效果用时(1S=10000)&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    ImageSwitch.ShowTime &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;2000&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;一个图片坐切换开始到切换另一个图片所用的时间&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    ImageSwitch.isHeightType &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;true:以垂直方向显示,false:以水平方向显示&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    ImageSwitch.Current &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; Object();&lt;br /&gt;    ImageSwitch.Show &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; () {&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;!&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Canvas.getContext) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;        }&lt;br /&gt;        ImageSwitch.Current.CurWidth &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;        ImageSwitch.Current.CurHeight &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Canvas.getContext(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;2d&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;).drawImage(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Images[&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.NextImageIndex], &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.NextImageIndex &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.NextImageIndex &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Images.length;&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.DrawImage();&lt;br /&gt;    }&lt;br /&gt;    ImageSwitch.DrawImage &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; () {&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _ctx &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Canvas.getContext(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;2d&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _imageSW &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Canvas.width &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;/&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.WidthCount;&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _imageSH &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Canvas.height &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;/&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.HeightCount;&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _imageSX &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _imageSW &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;*&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurWidth;&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _imageSY &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; _imageSH &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;*&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurHeight;&lt;br /&gt;        _ctx.drawImage(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Images[&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.NextImageIndex], _imageSX, _imageSY, _imageSW, _imageSH, _imageSX, _imageSY, _imageSW, _imageSH);&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.isHeightType) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurHeight &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurHeight &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.HeightCount;&lt;br /&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurHeight &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;==&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurWidth &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurWidth &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.WidthCount;&lt;br /&gt;            }&lt;br /&gt;        } &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; {&lt;br /&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurWidth &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurWidth &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.WidthCount;&lt;br /&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurWidth &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;==&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) {&lt;br /&gt;                &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurHeight &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurHeight &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.HeightCount;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurWidth &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;==&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Current.CurHeight &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;==&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) {&lt;br /&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.NextImageIndex &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.NextImageIndex &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;%&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.Images.length;&lt;br /&gt;            setTimeout(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; () { ImageSwitch.DrawImage(); }, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.ShowTime &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;-&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.SwitchTime &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;/&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.WidthCount &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;*&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.HeightCount)));&lt;br /&gt;        } &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; {&lt;br /&gt;            setTimeout(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; () { ImageSwitch.DrawImage(); }, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.SwitchTime &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;/&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.WidthCount &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;*&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.HeightCount));&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; ChangeType() {&lt;br /&gt;        ImageSwitch.isHeightType &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;!&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;ImageSwitch.isHeightType;&lt;br /&gt;    }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;canvas &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="CanvasSwitch"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; width&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="275"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; height&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="200"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;canvas&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="切换显示方式(水平/垂直)"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ChangeType()"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="msg"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;下面是有关Web Sql DataBase的代码&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;html&amp;gt;&lt;br/&gt;&amp;lt;head runat="server"&amp;gt;&lt;br/&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br/&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br/&gt;*{&lt;br/&gt;    margin:0;&lt;br/&gt;}&lt;br/&gt;&amp;lt;/style&amp;gt;&lt;br/&gt;&amp;lt;script src="JavaScript/jquery-1.6.1.min.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br/&gt;    function jData() {};&lt;br/&gt;    jData.prototype.Open = function (Name, Version, Description, size, CallBack) {&lt;br/&gt;        ///&amp;lt;summary&amp;gt;打开/创建数据库上下文对象&amp;lt;/summary&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="Name" type="string"&amp;gt;数据库名称&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="Version" type="string"&amp;gt;数据库版本,默认1.0&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="Description" type="string"&amp;gt;描述&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="size" type="number"&amp;gt;数据库大小(最大5M:5*1024*1024)&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="CallBack" type="function"&amp;gt;回调&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;returns type="DataBase" &amp;gt;数据库下下文对象&amp;lt;/returns&amp;gt;&lt;br/&gt;        return window.openDatabase(Name, Version, Description, size, CallBack(this));&lt;br/&gt;    }&lt;br/&gt;    jData.prototype.executeSql = function (DataBaseContext, SqlString, SqlPramary, SuccessCallBack, ErrorCallBack) {&lt;br/&gt;        ///&amp;lt;summary&amp;gt;打开/创建数据库上下文对象&amp;lt;/summary&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="DataBaseContext" type="DataBaseContext"&amp;gt;数据库上下文对象(Open)&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="SqlString" type="string"&amp;gt;Sql语句&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="SqlPramary" type="array"&amp;gt;参数(?)&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="SuccessCallBack" type="function"&amp;gt;成功回调&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;param name="ErrorCallBack" type="function"&amp;gt;错误回调&amp;lt;/param&amp;gt;&lt;br/&gt;        ///&amp;lt;returns type="void"&amp;gt;用回调&amp;lt;/returns&amp;gt;&lt;br/&gt;        DataBaseContext.transaction(function (tran) {&lt;br/&gt;            tran.executeSql(SqlString, SqlPramary, function (tran, SuccessResult) {&lt;br/&gt;                SuccessCallBack(SuccessResult);&lt;br/&gt;            }, function (tran, ErrorResult) {&lt;br/&gt;                ErrorCallBack(ErrorResult);&lt;br/&gt;            });&lt;br/&gt;        }, function (ErrorTran) {&lt;br/&gt;        }, function () {&lt;br/&gt;        });&lt;br/&gt;    }&lt;br/&gt;    function OpenDataBaseCallBack(DataBase) {&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    var j = new jData();&lt;br/&gt;    var DataBaseContext = j.Open("TestDataBase", "1.0", "test Db", 2 * 1024 * 1024, OpenDataBaseCallBack);&lt;br/&gt;    function GetAllTableName() {&lt;br/&gt;        document.getElementById("ShowMain").innerHTML = "";&lt;br/&gt;        ShowTableData("sqlite_sequence");&lt;br/&gt;        var SqlStr = "select * from sqlite_sequence order by seq";&lt;br/&gt;        j.executeSql(DataBaseContext, SqlStr, [], function (result) {&lt;br/&gt;            for (var i = 0; i &amp;lt; result.rows.length; i++) {&lt;br/&gt;                ShowTableData(result.rows.item(i).name);&lt;br/&gt;            }&lt;br/&gt;        }, function (Error) {&lt;br/&gt;            fun_ErrorCallBack(Error);&lt;br/&gt;        });&lt;br/&gt;    }&lt;br/&gt;    function ShowTableData(TableName) {&lt;br/&gt;        var SqlStr = "select * from " + TableName;&lt;br/&gt;        j.executeSql(DataBaseContext, SqlStr, [], function (result) {&lt;br/&gt;            if (result.rows.length &amp;gt; 0) {&lt;br/&gt;                var html = "&amp;lt;div style=\"color:blue;\"&amp;gt;" + TableName + "&amp;lt;/div&amp;gt;&amp;lt;table&amp;gt;&amp;lt;thead&amp;gt;&amp;lt;tr&amp;gt;";&lt;br/&gt;                var firstRow = result.rows.item(0);&lt;br/&gt;                for (var Column in firstRow) {&lt;br/&gt;                    html += "&amp;lt;th&amp;gt;" + Column + "&amp;lt;/th&amp;gt;";&lt;br/&gt;                }&lt;br/&gt;                html += "&amp;lt;/tr&amp;gt;&amp;lt;/thead&amp;gt;&amp;lt;tbody&amp;gt;";&lt;br/&gt;                for (var i = 0; i &amp;lt; result.rows.length; i++) {&lt;br/&gt;                    var _row = result.rows.item(i);&lt;br/&gt;                    html += "&amp;lt;tr&amp;gt;";&lt;br/&gt;                    for (var val in _row) {&lt;br/&gt;                        html += "&amp;lt;td&amp;gt;" + _row[val] + "&amp;lt;/td&amp;gt;";&lt;br/&gt;                    }&lt;br/&gt;                    html += "&amp;lt;/tr&amp;gt;";&lt;br/&gt;                }&lt;br/&gt;                html += "&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;";&lt;br/&gt;                $("#ShowMain").append(html);&lt;br/&gt;            }&lt;br/&gt;        }, function (Error) {&lt;br/&gt;            fun_ErrorCallBack(Error);&lt;br/&gt;        });&lt;br/&gt;    }&lt;br/&gt;    function fun_ErrorCallBack(ErrorMsg) {&lt;br/&gt;        document.getElementById("SpanErrorMsg").innerHTML = ErrorMsg.message;&lt;br/&gt;    }&lt;br/&gt;    window.onload = function () {&lt;br/&gt;        var SqlStr = "drop table Company;";&lt;br/&gt;        j.executeSql(DataBaseContext, SqlStr, [], function (res) { }, function (res) { alert(res.message); });&lt;br/&gt;        SqlStr = "create table Company(id integer primary key autoincrement,CompanyName text,CompanyNo text,RecordStatus text default 'Active');";&lt;br/&gt;        j.executeSql(DataBaseContext, SqlStr, [], function (res) { }, function (res) { alert(res.message); });&lt;br/&gt;        for (var i = 1; i &amp;lt; 10; i++) {&lt;br/&gt;            SqlStr = "insert into Company(CompanyName,CompanyNo) values(?,?);";&lt;br/&gt;            j.executeSql(DataBaseContext, SqlStr, [i.toString() + "Company", "CNO" + i.toString()], function (res) { }, function (res) { alert(res.message); });&lt;br/&gt;        }&lt;br/&gt;        GetAllTableName();&lt;br/&gt;    }&lt;br/&gt;    function btnRunSqlClick() {&lt;br/&gt;        document.getElementById("SpanErrorMsg").innerHTML = "";&lt;br/&gt;        var SqlStr = document.getElementById("textSQLCommand").value;&lt;br/&gt;        if (SqlStr.length == 0) { return; }&lt;br/&gt;        j.executeSql(DataBaseContext, SqlStr, [], function (result) {&lt;br/&gt;            GetAllTableName();&lt;br/&gt;        }, function (Error) {&lt;br/&gt;            fun_ErrorCallBack(Error);&lt;br/&gt;        });&lt;br/&gt;    }&lt;br/&gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&amp;lt;/head&amp;gt;&lt;br/&gt;&amp;lt;body&amp;gt;&lt;br/&gt;&amp;lt;form id="form1"&amp;gt;&lt;br/&gt;&amp;lt;div&amp;gt;&lt;br/&gt;&amp;lt;h1&amp;gt;Web Sql DataBase&amp;lt;/h1&amp;gt;&lt;br/&gt;&amp;lt;span&amp;gt;这是html5中的新技术.请用支持html5的浏览器打开&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br/&gt;&amp;lt;span&amp;gt;Web Sql DataBase支持在本地(不在服务器)的一个数据库,可以用脚本进行读写&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br/&gt;&amp;lt;span&amp;gt;下面的例子是我在本地创建了一个数据库,创建了Company表.并插入了几条数据&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br/&gt;&amp;lt;span&amp;gt;你可以在textarea中写相关的SQL来操作这些数据(create,drop,insert,update,delete....)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br/&gt;&amp;lt;span&amp;gt;注意:没有数据的表是不会显示出来,你插入一条数据就可以看到这个表&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br/&gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;div&amp;gt;&lt;br/&gt;&amp;lt;textarea id="textSQLCommand" style="width:80%;float:left;" rows="8" cols="80"&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br/&gt;&amp;lt;input id="btnRunSql" type="button" value="运行" style=" width:15%;height:135px; font-size:xx-large;" onclick="btnRunSqlClick()" /&amp;gt;&lt;br/&gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;div&amp;gt;&amp;lt;span style="color:Red;" id="SpanErrorMsg"&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;div&amp;gt;&lt;br/&gt;&amp;lt;span&amp;gt;语法堂&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br/&gt;&amp;lt;span&amp;gt;insert into Company(CompanyName,CompanyNo) values('10Company','CNO10')&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br/&gt;&amp;lt;span&amp;gt;create table Employee(id integer primary key autoincrement,EmployeeName text,EmployeeNo text,CompanyID integer,EmployeeSex text,EmployeeAge integer,RecordStatus text default 'Acitve')&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br/&gt;&amp;lt;span&amp;gt;insert into Employee(EmployeeName,EmployeeNo,CompanyID,EmployeeSex,EmployeeAge) values('LiuJu01','EMP01',1,'Boy',23)&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br/&gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;div id="ShowMain"&amp;gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;/form&amp;gt;&lt;br/&gt;&amp;lt;/body&amp;gt;&lt;br/&gt;&amp;lt;/html&amp;gt;&lt;br/&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liuju150/aggbug/2090355.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuju150/archive/2011/06/25/html5_Canvas.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuju150/archive/2011/05/14/WeiBo_OAuth.html</id><title type="text">新浪,腾迅,网易微博OAuth统一认证接口实现</title><summary type="text">看到国内微博兴起.各大门微博都提供了统一的OAuth认证开始有想法做一个统一访问接口了.到时候就可以利用各大门户的注册用户来为我们服务从而也使得最终用户不用每个网站都要去注册一个帐号.还有安全性的问题了从开始一时兴趣.到专心的架构,把博客园有关OAuth认证的文章都看了一下.从不知.到了解,到熟悉再到自己造轮子.利用休息时间.自己终于写好了国内四大门户的三大微博接口.由于搜狐的文档还没有看.用一般...</summary><published>2011-05-14T09:11:00Z</published><updated>2011-05-14T09:11:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2011/05/14/WeiBo_OAuth.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2011/05/14/WeiBo_OAuth.html"/><content type="html">&lt;p&gt;看到国内微博兴起.各大门微博都提供了统一的OAuth认证&lt;/p&gt;&lt;p&gt;开始有想法做一个统一访问接口了.到时候就可以利用各大门户的注册用户来为我们服务&lt;/p&gt;&lt;p&gt;从而也使得最终用户不用每个网站都要去注册一个帐号.还有安全性的问题了&lt;/p&gt;&lt;p&gt;从开始一时兴趣.到专心的架构,把博客园有关OAuth认证的文章都看了一下.&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;/p&gt;&lt;p&gt;接下来.先上图.有图有真相.这是我的架构图&lt;/p&gt;&lt;p&gt;项目地址&amp;nbsp;&lt;a href="http://weibooauth.codeplex.com/"&gt;http://weibooauth.codeplex.com/&lt;/a&gt;&amp;nbsp;(源代码在这里下载)&lt;br /&gt;欢迎有兴趣的人事进行一起研究.有的话就注册一个codeplex帐号.一起进行开发liuju150@gmail.com&lt;br /&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/45026/2011051416235785.png" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;OAuth项目写了几个公共接口分别是&lt;br /&gt;IOAuthConfig这个是得到web.config的配置信息接口&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;namespace OAuth&lt;br/&gt;{&lt;br/&gt;    public interface IOAuthConfig&lt;br/&gt;    {&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到AppKey&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        string GetAppKey();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到AppSecret&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        string GetAppSecret();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到回调URL&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        Uri GetCallBackURI();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到请求类型&lt;br/&gt;        /// GET,POST,HEADER&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthEnum.RequestType GetRequestType();&lt;br/&gt;&lt;br/&gt;        &lt;br/&gt;    }&lt;br/&gt;}&lt;br/&gt;&lt;/div&gt;&lt;p&gt;IOAuthMode这个接口得对OAuth认证的参数接口 这里接口比较多&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;namespace OAuth&lt;br/&gt;{&lt;br/&gt;    public interface IOAuthMode&lt;br/&gt;    {&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到回调地址&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthCallBack();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到申请的ConsumerKey&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthConsumerKey();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 设置随机字符串&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;param name="OAuthNoncd"&amp;gt;&amp;lt;/param&amp;gt;&lt;br/&gt;        void SetOAuthNonce(string OAuthNonceString);&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到随机字符串&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthNonce();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到签名方式&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthSignatureMethod();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 设置时间戳&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;param name="OAuthTimeStamp"&amp;gt;&amp;lt;/param&amp;gt;&lt;br/&gt;        void SetOAuthTimeStamp(string OAuthTimeStampString);&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到时间戳&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthTimeStamp();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到OAuth版本&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthVersion();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 设置签名字符串&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        void SetOAuthSignature(string OAuthSignatureString);&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到签名字符串&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthSignature();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 设置OAuthToken&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        void SetOAuthToken(OAuthParameter OAuthToken);&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到OAuthToken&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthToken();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 设置OAuthTokenSecret&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        void SetOAuthTokenSecret(OAuthParameter OAuthTokenSecret);&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到OAuthTokenSecret&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthTokenSecret();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 设置OAuthVerifier&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;param name="OAuthVerifier"&amp;gt;&amp;lt;/param&amp;gt;&lt;br/&gt;        void SetOAuthVerifier(OAuthParameter OAuthVerifier);&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到OAuthVerifier&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthParameter GetOAuthVerifier();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 得到接口提供商&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        OAuthEnum.OAuthInterface GetOAuthInterface();&lt;br/&gt;    }&lt;br/&gt;}&lt;br/&gt;&lt;/div&gt;&lt;p&gt;IOAuthRequestURL这个接口是对请求地址的接口&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;namespace OAuth&lt;br/&gt;{&lt;br/&gt;    public interface IOAuthRequestURL&lt;br/&gt;    {&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 获取未授权的Request Token&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        Uri GetRequestTokenURL();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 请求用户授权Token&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        Uri GetRequestOAuthTokenURL();&lt;br/&gt;&lt;br/&gt;        /// &amp;lt;summary&amp;gt;&lt;br/&gt;        /// 获取授权过的Access Token&lt;br/&gt;        /// &amp;lt;/summary&amp;gt;&lt;br/&gt;        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br/&gt;        Uri GetRequestAccessTokenURL();&lt;br/&gt;    }&lt;br/&gt;}&lt;br/&gt;&lt;/div&gt;&lt;p&gt;然后各个微博都实现这里几个接口(看到图片就知道.每个微博都实现了这三个接口)&lt;/p&gt;&lt;p&gt;然后OAuthBase就是实现OAuth认证.&lt;/p&gt;&lt;p&gt;拿新浪来说的OAuth认证反正都是经过三个步骤&lt;/p&gt;&lt;p&gt;第一次.请求RequestToken&lt;/p&gt;&lt;p&gt;得到OAuthToken和OAuthTokenSecret&lt;/p&gt;&lt;p&gt;第二步.用OAuthToken去认证得到OAuthVerifier&lt;/p&gt;&lt;p&gt;第三步就是得到真正的OAuthToken和OAuthTokenSecret&lt;/p&gt;&lt;p&gt;详细实现(新浪)&lt;/p&gt;&lt;p&gt;第一步&lt;/p&gt;&lt;p&gt;oauth_callback(回调地址,要UrlEncoding)&lt;/p&gt;&lt;p&gt;oauth_consumer_key(在新浪申请到的consumer_key)&lt;/p&gt;&lt;p&gt;oauth_nonce(随机字符串,听说腾迅要小于32位.我用GUID)&lt;/p&gt;&lt;p&gt;oauth_signature_method(签名方式,现在都是HMAC-SHA1)&lt;/p&gt;&lt;p&gt;oauth_timestamp(时间戳,1970-1-1 0:0:0到现在时间的整型值)&lt;/p&gt;&lt;p&gt;oauth_version(OAuth版本,新浪,腾迅为1.0a,网易为1.0)(目前)&lt;/p&gt;&lt;p&gt;生成参数字符串.用上面的参数 格式为:参数名1=参数值1&amp;amp;参数名2=参数值2,和URL一样.你懂的&lt;/p&gt;&lt;p&gt;然后string.format("{0}&amp;amp;{1}&amp;amp;{2}",{1:请求方式GET,POST},{2:请求地址UrlEncode(http://api.t.sina.com.cn/oauth/request_token)},{3:UrlEncode(参数字符串)})&lt;/p&gt;&lt;p&gt;这个就是签名的BaseString,然后用你申请得到的AppSecret+"&amp;amp;"为KEY,来进行签名生成签名字符串.然后也要对其UrlEncode&lt;/p&gt;&lt;p&gt;然后生成为签名字符串为oauth_signature的值&lt;/p&gt;&lt;p&gt;然后生成请求URL(GET)&lt;/p&gt;&lt;p&gt;http://api.t.sina.com.cn/oauth/request_token?参数名1=参数值1&amp;amp;参数名2=参数值2&lt;/p&gt;&lt;p&gt;这里和生成参数字符串一样.只是要加上oauth_signature&lt;/p&gt;&lt;p&gt;这里就是请求的URL.然后会得到&lt;br /&gt;oauth_token=ce9cc416a9ad8f37feba547541f81ec9&amp;amp;oauth_token_secret=a6966e6898480428574f04f768da1249&lt;/p&gt;&lt;p&gt;这样第一步RequestToken就完成了&lt;/p&gt;&lt;p&gt;第二步&lt;/p&gt;&lt;p&gt;&lt;a href="http://api.t.sina.com.cn/oauth/authorize?oauth_token=ce9cc416a9ad8f37feba547541f81ec9"&gt;http://api.t.sina.com.cn/oauth/authorize?oauth_token=ce9cc416a9ad8f37feba547541f81ec9&lt;br /&gt;&lt;/a&gt;打开这个地下进行用户认证.这里的&lt;a href="http://api.t.sina.com.cn/oauth/authorize?oauth_token=ce9cc416a9ad8f37feba547541f81ec9"&gt;oauth_token&lt;/a&gt;为第一步得到的&lt;a href="http://api.t.sina.com.cn/oauth/authorize?oauth_token=ce9cc416a9ad8f37feba547541f81ec9"&gt;oauth_token&lt;/a&gt;值&lt;/p&gt;&lt;p&gt;服务器返回oauth_token=ce9cc416a9ad8f37feba547541f81ec9&amp;amp;oauth_verifier=1234567&lt;/p&gt;&lt;p&gt;第三步.&lt;/p&gt;&lt;p&gt;用第一步的参数加上第二步得到的&lt;br /&gt;&amp;nbsp;oauth_token和oauth_verifier&lt;/p&gt;&lt;p&gt;得到新的签名字条串,然后用AppSecret+"&amp;amp;"+oauth_token_secret(第一步得到的)为KEY对&lt;/p&gt;&lt;p&gt;然后再进行签名(注意这里的oauth_nonce,oauth_timestamp要重新生成)&lt;/p&gt;&lt;p&gt;得到新的oauth_signature&lt;/p&gt;&lt;p&gt;然后像第一步一样生成URL进行请求.&lt;/p&gt;&lt;p&gt;得到真正的oauth_token和oauth_token_secret&lt;/p&gt;&lt;p&gt;然后就可以用这个调用相关接口了&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/45026/2011051417034532.png" /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;    protected void imgBtnSina_Click(object sender, ImageClickEventArgs e)&lt;br/&gt;    {&lt;br/&gt;        SinaOAuthMode OAuthMode = new SinaOAuthMode();&lt;br/&gt;        OAuthBase Base = new OAuthBase(new SinaOAuthRequestURL(), new SinaOAuthConfig(), OAuthMode);&lt;br/&gt;        OAuthMode = (SinaOAuthMode)Base.RequestToken();&lt;br/&gt;        string res = string.Format("{0}:{1}&amp;amp;{2}:{3}", OAuthMode.GetOAuthToken().ParameterName, OAuthMode.GetOAuthToken().ParameterValue, OAuthMode.GetOAuthTokenSecret().ParameterName, OAuthMode.GetOAuthTokenSecret().ParameterValue);&lt;br/&gt;        labMsg.Text = res;&lt;br/&gt;        string RequestOAuthTokenURL = Base.GetAccessTokenURL().ToString();&lt;br/&gt;        Session["OAuthMode"] = OAuthMode;&lt;br/&gt;        Page.ClientScript.RegisterStartupScript(GetType(), "W_CallBack", "&amp;lt;script language=\"javascript\" type=\"text/javascript\"&amp;gt;imgBtnClick('" + RequestOAuthTokenURL + "')&amp;lt;/script&amp;gt;");&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;    private void SinaCallBack()&lt;br/&gt;    {&lt;br/&gt;        SinaOAuthMode Mode = (SinaOAuthMode)Session["OAuthMode"];&lt;br/&gt;        Mode.SetOAuthToken(new OAuthParameter("oauth_token", Request.QueryString["oauth_token"]));&lt;br/&gt;        Mode.SetOAuthVerifier(new OAuthParameter("oauth_verifier", Request.QueryString["oauth_verifier"]));&lt;br/&gt;        OAuthBase Base = new OAuthBase(new SinaOAuthRequestURL(), new SinaOAuthConfig(), Mode);&lt;br/&gt;        Mode = (SinaOAuthMode)Base.RequestAccessToken();&lt;br/&gt;        Session["OAuthMode"] = Mode;&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;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br/&gt;&amp;lt;configuration&amp;gt;&lt;br/&gt;    &amp;lt;configSections&amp;gt;&lt;br/&gt;        &amp;lt;sectionGroup name="SinaSectionGroup"&amp;gt;&lt;br/&gt;            &amp;lt;section name="SinaSection" type="System.Configuration.NameValueSectionHandler,System"/&amp;gt;&lt;br/&gt;        &amp;lt;/sectionGroup&amp;gt;&lt;br/&gt;        &amp;lt;sectionGroup name="QQSectionGroup"&amp;gt;&lt;br/&gt;            &amp;lt;section name="QQSection" type="System.Configuration.NameValueSectionHandler,System"/&amp;gt;&lt;br/&gt;        &amp;lt;/sectionGroup&amp;gt;&lt;br/&gt;        &amp;lt;sectionGroup name="WangYiSectionGroup"&amp;gt;&lt;br/&gt;            &amp;lt;section name="WangYiSection" type="System.Configuration.NameValueSectionHandler,System"/&amp;gt;&lt;br/&gt;        &amp;lt;/sectionGroup&amp;gt;&lt;br/&gt;        &amp;lt;sectionGroup name="SohuSectionGroup"&amp;gt;&lt;br/&gt;            &amp;lt;section name="SohuSection" type="System.Configuration.NameValueSectionHandler,System"/&amp;gt;&lt;br/&gt;        &amp;lt;/sectionGroup&amp;gt;&lt;br/&gt;    &amp;lt;/configSections&amp;gt;&lt;br/&gt;    &amp;lt;SinaSectionGroup&amp;gt;&lt;br/&gt;        &amp;lt;SinaSection&amp;gt;&lt;br/&gt;            &amp;lt;add key="AppKey" value="*************"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="AppSecret" value="**************************"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="CallBackURI" value="http://localhost/OAuthWeb/OAuthCallBack.aspx?Type=Sina"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="RequestType" value="GET"/&amp;gt;&lt;br/&gt;        &amp;lt;/SinaSection&amp;gt;&lt;br/&gt;    &amp;lt;/SinaSectionGroup&amp;gt;&lt;br/&gt;    &amp;lt;QQSectionGroup&amp;gt;&lt;br/&gt;        &amp;lt;QQSection&amp;gt;&lt;br/&gt;            &amp;lt;add key="AppKey" value="*************"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="AppSecret" value="**************************"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="CallBackURI" value="http://localhost/OAuthWeb/OAuthCallBack.aspx?Type=QQ"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="RequestType" value="GET"/&amp;gt;&lt;br/&gt;        &amp;lt;/QQSection&amp;gt;&lt;br/&gt;    &amp;lt;/QQSectionGroup&amp;gt;&lt;br/&gt;    &amp;lt;WangYiSectionGroup&amp;gt;&lt;br/&gt;        &amp;lt;WangYiSection&amp;gt;&lt;br/&gt;            &amp;lt;add key="AppKey" value="*************"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="AppSecret" value="**************************"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="CallBackURI" value="http://localhost/OAuthWeb/OAuthCallBack.aspx?Type=WangYi"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="RequestType" value="GET"/&amp;gt;&lt;br/&gt;        &amp;lt;/WangYiSection&amp;gt;&lt;br/&gt;    &amp;lt;/WangYiSectionGroup&amp;gt;&lt;br/&gt;    &amp;lt;SohuSectionGroup&amp;gt;&lt;br/&gt;        &amp;lt;SohuSection&amp;gt;&lt;br/&gt;            &amp;lt;add key="AppKey" value="*************"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="AppSecret" value="**************************"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="CallBackURI" value="http://localhost/OAuthWeb/OAuthCallBack.aspx?Type=Sohu"/&amp;gt;&lt;br/&gt;            &amp;lt;add key="RequestType" value="GET"/&amp;gt;&lt;br/&gt;        &amp;lt;/SohuSection&amp;gt;&lt;br/&gt;    &amp;lt;/SohuSectionGroup&amp;gt;&lt;br/&gt;    &amp;lt;system.web&amp;gt;&lt;br/&gt;        &amp;lt;compilation debug="true" targetFramework="4.0"/&amp;gt;&lt;br/&gt;    &amp;lt;/system.web&amp;gt;&lt;br/&gt;&amp;lt;/configuration&amp;gt;&lt;br/&gt;&lt;/div&gt;web.config&lt;img src="http://www.cnblogs.com/liuju150/aggbug/2046399.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuju150/archive/2011/05/14/WeiBo_OAuth.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuju150/archive/2010/09/28/Google_chrome_Extensions_Translation.html</id><title type="text">开发谷歌浏览器插件(原创)</title><summary type="text">今天早上打开博客园.看到一文章"开发chrome扩展程序"自己看看,也还很简单,就自己动手写一个翻译插件来看看效果以前用谷歌的翻译接口做了一个翻译功能的网页http://liuju150.cacacoo.com所以我就打算把这个功能做成一个谷歌浏览器的插件这个翻译功能就一个页而.代码也很简单然后看看谷歌的插件文档在C盘下创建了一个文件夹C:\GoogleDemo然后把那个网页放到文件夹里面inde...</summary><published>2010-09-28T10:05:00Z</published><updated>2010-09-28T10:05:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2010/09/28/Google_chrome_Extensions_Translation.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2010/09/28/Google_chrome_Extensions_Translation.html"/><content type="html">&lt;p&gt;今天早上打开博客园.看到一文章"&lt;a id="ctl03_TitleUrl" href="http://www.cnblogs.com/igrl/archive/2010/09/28/1837236.html"&gt;开发chrome扩展程序&lt;/a&gt;"&lt;br /&gt;自己看看,也还很简单,就自己动手写一个翻译插件&lt;/p&gt;&lt;p&gt;来看看效果&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2010/45026/2010092817531552.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2010/45026/2010092817521992.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;以前用谷歌的翻译接口做了一个翻译功能的网页&lt;a href="http://liuju150.cacacoo.com" target="_blank"&gt;http://liuju150.cacacoo.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://liuju150.cacacoo.com" target="_blank"&gt;&lt;/a&gt;所以我就打算把这个功能做成一个谷歌浏览器的插件&lt;br /&gt;这个翻译功能就一个页而.代码也很简单&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;br/&gt;&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"&amp;gt;&lt;br/&gt;&amp;lt;head&amp;gt;&lt;br/&gt;&amp;lt;title&amp;gt;翻译&amp;lt;/title&amp;gt;&lt;br/&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br/&gt;#MainTable&lt;br/&gt;{&lt;br/&gt;    width:100%;&lt;br/&gt;    text-align:center;&lt;br/&gt;}&lt;br/&gt;&amp;lt;/style&amp;gt;&lt;br/&gt;&amp;lt;script type="text/javascript" src="http://www.google.com/jsapi?v=1&amp;amp;key=ABQIAAAACqGEg_EWjzyatp5DcvOejRR4W90b60fHZvOCS2noQmQiRb84KxQixoel7iEIiOVRigOQjXi2AyU3yQ"&amp;gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&amp;lt;script language="javascript" type="text/javascript"&amp;gt;&lt;br/&gt;    google.load("language", "1");&lt;br/&gt;    function BeginTranslate(isTxtTranslateSourceKeyUp) {&lt;br/&gt;        var _txtTranslateSource = document.getElementById("txtTranslateSource");&lt;br/&gt;        var _txtTranslateReturn = document.getElementById("txtTranslateReturn");&lt;br/&gt;&lt;br/&gt;        //为空不翻译&lt;br/&gt;        if (isTxtTranslateSourceKeyUp == true &amp;amp;&amp;amp; _txtTranslateSource.value == "") {&lt;br/&gt;            _txtTranslateReturn.value = "";&lt;br/&gt;            return;&lt;br/&gt;        } else if (isTxtTranslateSourceKeyUp == false &amp;amp;&amp;amp; _txtTranslateReturn.value == "") {&lt;br/&gt;            _txtTranslateSource.value = "";&lt;br/&gt;            return;&lt;br/&gt;        }&lt;br/&gt;        var OldLanguage = document.getElementById("SelectLanguageOld").value;&lt;br/&gt;        var NewLanguage = document.getElementById("SelectLanguageNew").value;&lt;br/&gt;        if (isTxtTranslateSourceKeyUp == false) {&lt;br/&gt;            var _Temp = OldLanguage;&lt;br/&gt;            OldLanguage = NewLanguage;&lt;br/&gt;            NewLanguage = _Temp;&lt;br/&gt;        }&lt;br/&gt;        &lt;br/&gt;        var _text = "";&lt;br/&gt;        if (isTxtTranslateSourceKeyUp == true) {&lt;br/&gt;            _text = _txtTranslateSource.value;&lt;br/&gt;        } else {&lt;br/&gt;            _text = _txtTranslateReturn.value;&lt;br/&gt;        }&lt;br/&gt;&lt;br/&gt;        //检测是哪种语言&lt;br/&gt;        if (OldLanguage == "auto") {&lt;br/&gt;            google.language.detect(_text, function (res) {&lt;br/&gt;                if (!res.error) {&lt;br/&gt;                    OldLanguage = res.language;&lt;br/&gt;                    if (isTxtTranslateSourceKeyUp == true) {&lt;br/&gt;                        document.getElementById("SelectLanguageOld").value = res.language;&lt;br/&gt;                    } else {&lt;br/&gt;                        document.getElementById("SelectLanguageNew").value = res.language;&lt;br/&gt;                    }&lt;br/&gt;                }&lt;br/&gt;            });&lt;br/&gt;        }&lt;br/&gt;&lt;br/&gt;        //要翻译成什么语言&lt;br/&gt;        //此语言要明确,如果是自动检测的话,就自动换在中文&lt;br/&gt;        if (NewLanguage == "auto") {&lt;br/&gt;            NewLanguage = "zh-CN";&lt;br/&gt;            if (isTxtTranslateSourceKeyUp == true) {&lt;br/&gt;                document.getElementById("SelectLanguageOld").value = NewLanguage;&lt;br/&gt;            } else {&lt;br/&gt;                document.getElementById("SelectLanguageNew").value = NewLanguage;&lt;br/&gt;            }&lt;br/&gt;        }&lt;br/&gt;&lt;br/&gt;        //相同判断&lt;br/&gt;        if (OldLanguage == NewLanguage) {&lt;br/&gt;            if (isTxtTranslateSourceKeyUp == true) {&lt;br/&gt;                _txtTranslateReturn.value = "请选择要翻译为什么语言";&lt;br/&gt;            } else {&lt;br/&gt;                _txtTranslateSource.value = "请选择要翻译为什么语言";&lt;br/&gt;            }&lt;br/&gt;            return;&lt;br/&gt;        }&lt;br/&gt;&lt;br/&gt;        //是否支持此种语言的翻译&lt;br/&gt;        if (google.language.isTranslatable(NewLanguage) == false) {&lt;br/&gt;            if (isTxtTranslateSourceKeyUp == true) {&lt;br/&gt;                _txtTranslateReturn.value = "不支持此种语言的翻译";&lt;br/&gt;            } else {&lt;br/&gt;                _txtTranslateSource.value = "不支持此种语言的翻译";&lt;br/&gt;            }&lt;br/&gt;            return;&lt;br/&gt;        }&lt;br/&gt;        &lt;br/&gt;        //开始翻译&lt;br/&gt;        google.language.translate({ "text": _text, "type": google.language.ContentType["TEXT"] }, OldLanguage, NewLanguage, function (result) {&lt;br/&gt;            if (!result.error) {&lt;br/&gt;                var ReturnStr = result.translation;&lt;br/&gt;                if (isTxtTranslateSourceKeyUp == true) {&lt;br/&gt;                    _txtTranslateReturn.value = ReturnStr;&lt;br/&gt;                } else {&lt;br/&gt;                    _txtTranslateSource.value = ReturnStr;&lt;br/&gt;                }&lt;br/&gt;            }&lt;br/&gt;        });&lt;br/&gt;    }&lt;br/&gt;    google.setOnLoadCallback(function () { });&lt;br/&gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&amp;lt;/head&amp;gt;&lt;br/&gt;&amp;lt;body&amp;gt;&lt;br/&gt;&amp;lt;div&amp;gt;&lt;br/&gt;&amp;lt;table id="MainTable"&amp;gt;&lt;br/&gt;    &amp;lt;tbody&amp;gt;&lt;br/&gt;        &amp;lt;tr&amp;gt;&lt;br/&gt;            &amp;lt;td align="right"&amp;gt;&lt;br/&gt;                &amp;lt;select id="SelectLanguageOld" onchange="BeginTranslate(false)"&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="auto"&amp;gt;检测语言&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sq"&amp;gt;阿尔巴尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ar"&amp;gt;阿拉伯语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="az"&amp;gt;阿塞拜疆语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ga"&amp;gt;爱尔兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="et"&amp;gt;爱沙尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="be"&amp;gt;白俄罗斯语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="bg"&amp;gt;保加利亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="is"&amp;gt;冰岛语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="pl"&amp;gt;波兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="fa"&amp;gt;波斯语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="af"&amp;gt;布尔文(南非荷兰语)&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="da"&amp;gt;丹麦语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="de"&amp;gt;德语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ru"&amp;gt;俄语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="fr"&amp;gt;法语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="tl"&amp;gt;菲律宾语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="fi"&amp;gt;芬兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ka"&amp;gt;格鲁吉亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ht"&amp;gt;海地克里奥尔语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ko"&amp;gt;韩语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="nl"&amp;gt;荷兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="gl"&amp;gt;加利西亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ca"&amp;gt;加泰罗尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="cs"&amp;gt;捷克语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="hr"&amp;gt;克罗地亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="lv"&amp;gt;拉脱维亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="lt"&amp;gt;立陶宛语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ro"&amp;gt;罗马尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="mt"&amp;gt;马耳他语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ms"&amp;gt;马来语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="mk"&amp;gt;马其顿语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="no"&amp;gt;挪威语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="pt"&amp;gt;葡萄牙语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ja"&amp;gt;日语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sv"&amp;gt;瑞典语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sr"&amp;gt;塞尔维亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sk"&amp;gt;斯洛伐克语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sl"&amp;gt;斯洛文尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sw"&amp;gt;斯瓦希里语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="th"&amp;gt;泰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="tr"&amp;gt;土耳其语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="cy"&amp;gt;威尔士语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="uk"&amp;gt;乌克兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="eu"&amp;gt;西班牙的巴斯克语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="es"&amp;gt;西班牙语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="iw"&amp;gt;希伯来语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="el"&amp;gt;希腊语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="hu"&amp;gt;匈牙利语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="hy"&amp;gt;亚美尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="it"&amp;gt;意大利语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="yi"&amp;gt;意第绪语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="hi"&amp;gt;印地语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ur"&amp;gt;印度乌尔都语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="id"&amp;gt;印尼语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="en"&amp;gt;英语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="vi"&amp;gt;越南语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="zh-CN" selected="selected"&amp;gt;中文&amp;lt;/option&amp;gt;&lt;br/&gt;                &amp;lt;/select&amp;gt;&lt;br/&gt;            &amp;lt;/td&amp;gt;&lt;br/&gt;            &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br/&gt;            &amp;lt;td align="left"&amp;gt;&lt;br/&gt;                &amp;lt;select id="SelectLanguageNew" onchange="BeginTranslate(true)"&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="auto"&amp;gt;检测语言&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sq"&amp;gt;阿尔巴尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ar"&amp;gt;阿拉伯语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="az"&amp;gt;阿塞拜疆语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ga"&amp;gt;爱尔兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="et"&amp;gt;爱沙尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="be"&amp;gt;白俄罗斯语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="bg"&amp;gt;保加利亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="is"&amp;gt;冰岛语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="pl"&amp;gt;波兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="fa"&amp;gt;波斯语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="af"&amp;gt;布尔文(南非荷兰语)&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="da"&amp;gt;丹麦语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="de"&amp;gt;德语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ru"&amp;gt;俄语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="fr"&amp;gt;法语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="tl"&amp;gt;菲律宾语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="fi"&amp;gt;芬兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ka"&amp;gt;格鲁吉亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ht"&amp;gt;海地克里奥尔语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ko"&amp;gt;韩语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="nl"&amp;gt;荷兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="gl"&amp;gt;加利西亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ca"&amp;gt;加泰罗尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="cs"&amp;gt;捷克语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="hr"&amp;gt;克罗地亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="lv"&amp;gt;拉脱维亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="lt"&amp;gt;立陶宛语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ro"&amp;gt;罗马尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="mt"&amp;gt;马耳他语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ms"&amp;gt;马来语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="mk"&amp;gt;马其顿语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="no"&amp;gt;挪威语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="pt"&amp;gt;葡萄牙语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ja"&amp;gt;日语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sv"&amp;gt;瑞典语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sr"&amp;gt;塞尔维亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sk"&amp;gt;斯洛伐克语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sl"&amp;gt;斯洛文尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="sw"&amp;gt;斯瓦希里语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="th"&amp;gt;泰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="tr"&amp;gt;土耳其语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="cy"&amp;gt;威尔士语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="uk"&amp;gt;乌克兰语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="eu"&amp;gt;西班牙的巴斯克语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="es"&amp;gt;西班牙语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="iw"&amp;gt;希伯来语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="el"&amp;gt;希腊语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="hu"&amp;gt;匈牙利语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="hy"&amp;gt;亚美尼亚语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="it"&amp;gt;意大利语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="yi"&amp;gt;意第绪语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="hi"&amp;gt;印地语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="ur"&amp;gt;印度乌尔都语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="id"&amp;gt;印尼语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="en" selected="selected"&amp;gt;英语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="vi"&amp;gt;越南语&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="zh-TW"&amp;gt;中文(繁体)&amp;lt;/option&amp;gt;&lt;br/&gt;                    &amp;lt;option  value="zh-CN"&amp;gt;中文(简体)&amp;lt;/option&amp;gt;&lt;br/&gt;                &amp;lt;/select&amp;gt;&lt;br/&gt;            &amp;lt;/td&amp;gt;&lt;br/&gt;        &amp;lt;/tr&amp;gt;&lt;br/&gt;        &amp;lt;tr&amp;gt;&lt;br/&gt;            &amp;lt;td align="right"&amp;gt;&amp;lt;textarea id="txtTranslateSource" rows="8" cols="30"&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/td&amp;gt;&lt;br/&gt;            &amp;lt;td&amp;gt;&lt;br/&gt;                &amp;lt;button title="从左到右翻译" onclick="BeginTranslate(true)"&amp;gt;&amp;gt;&amp;gt;&amp;lt;/button&amp;gt;&lt;br/&gt;                &amp;lt;br /&amp;gt;&lt;br/&gt;                &amp;lt;br /&amp;gt;&lt;br/&gt;                &amp;lt;button title="从右到左翻译" onclick="BeginTranslate(false)"&amp;gt;&amp;lt;&amp;lt;&amp;lt;/button&amp;gt;&lt;br/&gt;            &amp;lt;/td&amp;gt;&lt;br/&gt;            &amp;lt;td align="left"&amp;gt;&amp;lt;textarea id="txtTranslateReturn" rows="8" cols="30"&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/td&amp;gt;&lt;br/&gt;        &amp;lt;/tr&amp;gt;&lt;br/&gt;    &amp;lt;/tbody&amp;gt;&lt;br/&gt;&amp;lt;/table&amp;gt;&lt;br/&gt;&amp;lt;/div&amp;gt;&lt;br/&gt;&amp;lt;script language="javascript" type="text/javascript"&amp;gt;&lt;br/&gt;    var timer;&lt;br/&gt;    document.getElementById("txtTranslateSource").onkeyup = function () {&lt;br/&gt;        if (timer != null) {&lt;br/&gt;            clearTimeout(timer);&lt;br/&gt;        }&lt;br/&gt;        timer = setTimeout("BeginTranslate(true)", 1000);&lt;br/&gt;    };&lt;br/&gt;    document.getElementById("txtTranslateReturn").onkeyup = function () {&lt;br/&gt;        if (timer != null) {&lt;br/&gt;            clearTimeout(timer);&lt;br/&gt;        }&lt;br/&gt;        timer = setTimeout("BeginTranslate(false)", 1000);&lt;br/&gt;    };&lt;br/&gt;&amp;lt;/script&amp;gt;&lt;br/&gt;&amp;lt;/body&amp;gt;&lt;br/&gt;&amp;lt;/html&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;然后看看谷歌的插件文档&lt;br /&gt;在C盘下创建了一个文件夹C:\GoogleDemo&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2010/45026/2010092817510819.png" alt="" /&gt;&lt;br /&gt;然后把那个网页放到文件夹里面index.html&lt;/p&gt;&lt;p&gt;然后在这个文件夹里面自己创建一个manifest.json文件&lt;/p&gt;&lt;p&gt;文件内容&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;{ &lt;br/&gt;  "name": "Translation(翻译)",&lt;br/&gt;  "version": "1.1",&lt;br/&gt;  "description": "This is a translation plug-in, you can translate between many languages(这是一个翻译插件,可以在很多种语言之间相互翻译)",&lt;br/&gt;  "icons":{"16":"16.png","48":"48.png","128":"128.png"},&lt;br/&gt;  "browser_action": {&lt;br/&gt;    "default_icon": "16.png",&lt;br/&gt;      "popup": "index.html"&lt;br/&gt;  }, &lt;br/&gt;  "permissions": ["http://*/","bookmarks","tabs","history"] &lt;br/&gt;}&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;自己做了几个PNG图标,主要是做插件在浏览器上的图标用,就是浏览器右上角看到我插件的那个图标&lt;br /&gt;然后打开谷歌浏览器输入地址:&lt;a href="chrome://extensions/"&gt;chrome://extensions/&lt;/a&gt;&lt;br /&gt;&lt;img src="http://pic002.cnblogs.com/images/2010/45026/2010092817554153.png" alt="" /&gt;&lt;br /&gt;&amp;nbsp;开始没有看到我这个插件的,这是我安装上去的效果,&lt;br /&gt;开始的话,选择第一个按钮,就会要你选择你插件所在的文件夹,这里我们选择C:\GoogleDemo&lt;br /&gt;他就会自己载入我们的插件,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;然后再选择第二个按钮&lt;br /&gt;&lt;img src="http://pic002.cnblogs.com/images/2010/45026/2010092817595342.png" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;第一次可以不选择第二个文件,因为第一次他会自己生成一个GoogleDemo.pem这样的文件&lt;/p&gt;&lt;p&gt;以后你更新了的话.就要选择了,他就知道是在这个插件上的更新,而不是一个新的插件&lt;br /&gt;完成后.就可以在你的谷歌浏览器里看到这个翻译插件了&amp;nbsp;&lt;br /&gt;&lt;a href="http://files.cnblogs.com/liuju150/GoogleDemo.rar"&gt;DEMO下载&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liuju150/aggbug/1837791.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liuju150/archive/2010/09/28/Google_chrome_Extensions_Translation.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liuju150/archive/2010/01/22/Ajax-Chat-jQuery.html</id><title type="text">简单聊天室(Ajax)(jQuery1.4+ashx)</title><summary type="text">唉.一个星期上班的最后一天.项目也快完成了.就是在那里改一下BUG只是公司里电脑不能上网,看着好久没有策QQ了所以今天就想做一个简单一点的聊天室,只要能进去群策就OK了首先上图(项目的架构)用的工厂模式做的再加上最新的jQuery1.4只不过公司里都是用的VS2005.所以环境就只能用VS2005+Sql2005下面是JavaScript代码,主要功能就是去请求数据和绑定数据了代码Code hig...</summary><published>2010-01-22T11:25:00Z</published><updated>2010-01-22T11:25:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2010/01/22/Ajax-Chat-jQuery.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2010/01/22/Ajax-Chat-jQuery.html"/><content type="text">唉.一个星期上班的最后一天.项目也快完成了.就是在那里改一下BUG只是公司里电脑不能上网,看着好久没有策QQ了所以今天就想做一个简单一点的聊天室,只要能进去群策就OK了首先上图(项目的架构)用的工厂模式做的再加上最新的jQuery1.4只不过公司里都是用的VS2005.所以环境就只能用VS2005+Sql2005下面是JavaScript代码,主要功能就是去请求数据和绑定数据了代码Code hig...</content></entry><entry><id>http://www.cnblogs.com/liuju150/archive/2009/10/08/1579064.html</id><title type="text">跨数据库连接类(System.Data.Common)</title><summary type="text">a.net为为们们提供了各个数据库的链接.比如说MSSQL就是System.Data.SqlClientOracle就是System.Data.OracleClientMySql就是MySql.Data.MySqlClient其它的相应就是的了.还有什么DB2.还有等等一些.以前我们做跨数据库的时候用的是反射.只不过看到网上好多评论说反射效率不怎么好所以近来在研究System.Data.Commo...</summary><published>2009-10-08T04:36:00Z</published><updated>2009-10-08T04:36:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2009/10/08/1579064.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2009/10/08/1579064.html"/><content type="text">a.net为为们们提供了各个数据库的链接.比如说MSSQL就是System.Data.SqlClientOracle就是System.Data.OracleClientMySql就是MySql.Data.MySqlClient其它的相应就是的了.还有什么DB2.还有等等一些.以前我们做跨数据库的时候用的是反射.只不过看到网上好多评论说反射效率不怎么好所以近来在研究System.Data.Commo...</content></entry><entry><id>http://www.cnblogs.com/liuju150/archive/2009/09/15/1567153.html</id><title type="text">asp.net中对amCharts(.net版)图形报表的使用</title><summary type="text">先来看看几个实现的1.饼图 2.柱型图 3.线型图 第一步当然是要添加dll引用然后再把相关文件放到目录里就像在项目里添加FCK编辑器一样这样的话.开始的环境就好了我的目录结构是这样的 当然只是为了测试,就没有那样去什么什么了当然,在每个页的开始要注册一下这个dll&lt;%@ Register Assembly="am.Charts" Namespace="am.Charts" TagPrefi...</summary><published>2009-09-15T09:14:00Z</published><updated>2009-09-15T09:14:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2009/09/15/1567153.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2009/09/15/1567153.html"/><content type="text">先来看看几个实现的1.饼图 2.柱型图 3.线型图 第一步当然是要添加dll引用然后再把相关文件放到目录里就像在项目里添加FCK编辑器一样这样的话.开始的环境就好了我的目录结构是这样的 当然只是为了测试,就没有那样去什么什么了当然,在每个页的开始要注册一下这个dll&lt;%@ Register Assembly="am.Charts" Namespace="am.Charts" TagPrefi...</content></entry><entry><id>http://www.cnblogs.com/liuju150/archive/2009/09/14/1566479.html</id><title type="text">对ashx请求用Gzip,Deflated压缩</title><summary type="text">//GZIP压缩[代码]这样每次context.Response.Write出支的数据就压缩了对效多的文本信息压缩可以压缩到原来三分之一到四分之一的样子如果发送的信息只有几个字节就没有必要了下面来看两次压缩的对比 上面这个是压缩前的下面这个是压缩后的 来比较一下.压缩前第一个请求:3021字节,用时0.033第二个请求: 431字节,用时0.010第三个请求: 516字节,用时0.008压缩后第一...</summary><published>2009-09-14T09:13:00Z</published><updated>2009-09-14T09:13:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2009/09/14/1566479.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2009/09/14/1566479.html"/><content type="text">//GZIP压缩[代码]这样每次context.Response.Write出支的数据就压缩了对效多的文本信息压缩可以压缩到原来三分之一到四分之一的样子如果发送的信息只有几个字节就没有必要了下面来看两次压缩的对比 上面这个是压缩前的下面这个是压缩后的 来比较一下.压缩前第一个请求:3021字节,用时0.033第二个请求: 431字节,用时0.010第三个请求: 516字节,用时0.008压缩后第一...</content></entry><entry><id>http://www.cnblogs.com/liuju150/archive/2009/09/13/1565819.html</id><title type="text">JavaScript控制浏览器返回(新方案)</title><summary type="text">假如我们有一个这样的操作流程1.我们有两个页面,一个显示页show.html,一个增加信息页add.html2.在show.html中点击增加信息的时候.就跳到add.html页3.在add.html中有一个返回按钮,当然有一个提交按钮4.每点击一次提交的时候,页面就刷新一次问题:当点击了N次提交后.我点击返回,我要怎么样返回到show.html,当然不能在服务器用Response.Redirec...</summary><published>2009-09-12T23:22:00Z</published><updated>2009-09-12T23:22:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2009/09/13/1565819.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2009/09/13/1565819.html"/><content type="text">假如我们有一个这样的操作流程1.我们有两个页面,一个显示页show.html,一个增加信息页add.html2.在show.html中点击增加信息的时候.就跳到add.html页3.在add.html中有一个返回按钮,当然有一个提交按钮4.每点击一次提交的时候,页面就刷新一次问题:当点击了N次提交后.我点击返回,我要怎么样返回到show.html,当然不能在服务器用Response.Redirec...</content></entry><entry><id>http://www.cnblogs.com/liuju150/archive/2009/09/11/1565009.html</id><title type="text">反射实现所有实体的增删改操作(jQuery+json)</title><summary type="text">续前面的无刷新分页控件,编辑,修改控件的实现,(这里是地址:http://www.cnblogs.com/liuju150/archive/2009/09/11/1564994.html)那么,有三四十张表的话,前台表单是自动生成的.只不过生成的实体和数据库里的表名都是有规律可以找的.还有操作实体的类,所以我只要通过前台把表单传过来.我就可以知道要反射到哪个实体,然后对实体进行相应的赋值.再反射一...</summary><published>2009-09-11T13:21:00Z</published><updated>2009-09-11T13:21:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2009/09/11/1565009.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2009/09/11/1565009.html"/><content type="text">续前面的无刷新分页控件,编辑,修改控件的实现,(这里是地址:http://www.cnblogs.com/liuju150/archive/2009/09/11/1564994.html)那么,有三四十张表的话,前台表单是自动生成的.只不过生成的实体和数据库里的表名都是有规律可以找的.还有操作实体的类,所以我只要通过前台把表单传过来.我就可以知道要反射到哪个实体,然后对实体进行相应的赋值.再反射一...</content></entry><entry><id>http://www.cnblogs.com/liuju150/archive/2009/09/11/1564994.html</id><title type="text">无刷新分页控件(原创)(jQuery+json+ashx)(Ajax)</title><summary type="text">近来在做一个项目,有很多基本的信息表.但这些信息都只有一些增删改查的相关操作大多数表没有业务流的相关操作.要是每个表的增删改查相关功能都一个个去做一个管理页不单麻烦,也不算是一个程序员有的思想(不知道偷懒人程序员不算一个好的程序员)三四十来张表.每张表做两个管理页.就是七八十人页面.那我不想死.所以.就打算做一个通用的增删改查控件标题只是说一个分页显示控件,那还只是一个小点.主要是看到现在园子里对...</summary><published>2009-09-11T12:30:00Z</published><updated>2009-09-11T12:30:00Z</updated><author><name>艾梦尔</name><uri>http://www.cnblogs.com/liuju150/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liuju150/archive/2009/09/11/1564994.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liuju150/archive/2009/09/11/1564994.html"/><content type="text">近来在做一个项目,有很多基本的信息表.但这些信息都只有一些增删改查的相关操作大多数表没有业务流的相关操作.要是每个表的增删改查相关功能都一个个去做一个管理页不单麻烦,也不算是一个程序员有的思想(不知道偷懒人程序员不算一个好的程序员)三四十来张表.每张表做两个管理页.就是七八十人页面.那我不想死.所以.就打算做一个通用的增删改查控件标题只是说一个分页显示控件,那还只是一个小点.主要是看到现在园子里对...</content></entry></feed>
