<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hpyer 的未知空间 &#187; javascript</title>
	<atom:link href="http://hpyer.cn/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://hpyer.cn</link>
	<description>现实的世界里寻找点滴的未知空间</description>
	<lastBuildDate>Wed, 01 Feb 2012 02:16:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>JavaScript 下四舍五入法、舍去法、进一法截取小数的方法</title>
		<link>http://hpyer.cn/javascript-number-format.html</link>
		<comments>http://hpyer.cn/javascript-number-format.html#comments</comments>
		<pubDate>Mon, 28 Nov 2011 08:58:01 +0000</pubDate>
		<dc:creator>Hpyer</dc:creator>
				<category><![CDATA[Web 技术]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[四舍五入法]]></category>
		<category><![CDATA[截取小数]]></category>
		<category><![CDATA[舍去法]]></category>
		<category><![CDATA[进一法]]></category>

		<guid isPermaLink="false">http://hpyer.cn/?p=778</guid>
		<description><![CDATA[JavaScript 版四舍五入法、舍去法、进一法截取小数的方法。若不指定小数位数，则按整数截取。 var Digit = {};/**&#160;* 四舍五入法截取一个小数&#160;* @param float digit 要格式化的数字&#160;* @param integer length 要保留的小数位数&#160;* @return float&#160;*/&#60;br /&#62;Digit.round = function(digit, length) {&#160;&#160; &#160;length = length ? parseInt(length) : 0;&#160;&#160; &#160;if (length &#60;= 0) return Math.round(digit);&#160;&#160; &#160;digit = Math.round(digit * Math.pow(10, length)) / Math.pow(10, length);&#160;&#160; &#160;return digit;};/**&#160;* 舍去法截取一个小数&#160;* @param float digit 要格式化的数字&#160;* @param integer length 要保留的小数位数&#160;* [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript 版四舍五入法、舍去法、进一法截取小数的方法。若不指定小数位数，则按整数截取。</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">Digit</span><span style="color: Gray;"> = </span><span style="color: Olive;">{}</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">/**<br />&nbsp;* 四舍五入法截取一个小数<br />&nbsp;* @param float digit 要格式化的数字<br />&nbsp;* @param integer length 要保留的小数位数<br />&nbsp;* @return float<br />&nbsp;*/</span><span style="color: Gray;">&lt;</span><span style="color: Blue;">br</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;">&gt;<br />Digit.round = function(digit, length) {<br />&nbsp;&nbsp; &nbsp;length = length ? parseInt(length) : 0;<br />&nbsp;&nbsp; &nbsp;if (length &lt;= 0) return Math.round(digit);<br />&nbsp;&nbsp; &nbsp;digit = Math.round(digit * Math.pow(10, length)) </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">pow</span><span style="color: Olive;">(</span><span style="color: Maroon;">10</span><span style="color: Gray;">, </span><span style="color: Blue;">length</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Blue;">digit</span><span style="color: Gray;">;<br />};<br /></span><span style="color: #ffa500;">/**<br />&nbsp;* 舍去法截取一个小数<br />&nbsp;* @param float digit 要格式化的数字<br />&nbsp;* @param integer length 要保留的小数位数<br />&nbsp;* @return float<br />&nbsp;*/</span><span style="color: Gray;"><br /></span><span style="color: Blue;">Digit</span><span style="color: Gray;">.</span><span style="color: Blue;">floor</span><span style="color: Gray;"> = </span><span style="color: Green;">function</span><span style="color: Olive;">(</span><span style="color: Blue;">digit</span><span style="color: Gray;">, </span><span style="color: Blue;">length</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Blue;">length</span><span style="color: Gray;"> = </span><span style="color: Blue;">length</span><span style="color: Gray;"> ? </span><span style="color: Blue;">parseInt</span><span style="color: Olive;">(</span><span style="color: Blue;">length</span><span style="color: Olive;">)</span><span style="color: Gray;"> : </span><span style="color: Maroon;">0</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">length</span><span style="color: Gray;"> &lt;= </span><span style="color: Maroon;">0</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">digit</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Blue;">digit</span><span style="color: Gray;"> = </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">digit</span><span style="color: Gray;"> * </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">pow</span><span style="color: Olive;">(</span><span style="color: Maroon;">10</span><span style="color: Gray;">, </span><span style="color: Blue;">length</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: #8b0000;">/</span><span style="color: Red;"> Math.pow(10, length);<br />&nbsp;&nbsp; &nbsp;return digit;<br />};<br /></span><span style="color: #8b0000;">/</span><span style="color: Gray;">**<br />&nbsp;* 进一法截取一个小数<br />&nbsp;* @</span><span style="color: Blue;">param</span><span style="color: Gray;"> </span><span style="color: Green;">float</span><span style="color: Gray;"> </span><span style="color: Blue;">digit</span><span style="color: Gray;"> 要格式化的数字<br />&nbsp;* @</span><span style="color: Blue;">param</span><span style="color: Gray;"> </span><span style="color: Blue;">integer</span><span style="color: Gray;"> </span><span style="color: Blue;">length</span><span style="color: Gray;"> 要保留的小数位数<br />&nbsp;* @</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Green;">float</span><span style="color: Gray;"><br />&nbsp;*</span><span style="color: #8b0000;">/</span><span style="color: Red;"><br />Digit.ceil = function(digit, length) {<br />&nbsp;&nbsp; &nbsp;length = length ? parseInt(length) : 0;<br />&nbsp;&nbsp; &nbsp;if (length &lt;= 0) return Math.ceil(digit);<br />&nbsp;&nbsp; &nbsp;digit = Math.ceil(digit * Math.pow(10, length)) </span><span style="color: #8b0000;">/</span><span style="color: Gray;"> </span><span style="color: Teal;">Math</span><span style="color: Gray;">.</span><span style="color: Blue;">pow</span><span style="color: Olive;">(</span><span style="color: Maroon;">10</span><span style="color: Gray;">, </span><span style="color: Blue;">length</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;&nbsp; &nbsp;</span><span style="color: Green;">return</span><span style="color: Gray;"> </span><span style="color: Blue;">digit</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #ffa500;">// 使用方法</span><span style="color: Gray;"><br /></span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">num</span><span style="color: Gray;"> = </span><span style="color: Maroon;">1.2345</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">数字：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">num</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">四色五入法：&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> 保留3位小数：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">Digit</span><span style="color: Gray;">.</span><span style="color: Blue;">round</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;">, </span><span style="color: Maroon;">3</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> 保留2位小数：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">Digit</span><span style="color: Gray;">.</span><span style="color: Blue;">round</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;">, </span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">舍去法：&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> 保留3位小数：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">Digit</span><span style="color: Gray;">.</span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;">, </span><span style="color: Maroon;">3</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> 保留2位小数：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">Digit</span><span style="color: Gray;">.</span><span style="color: Blue;">floor</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;">, </span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">进一法：&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> 保留3位小数：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">Digit</span><span style="color: Gray;">.</span><span style="color: Blue;">ceil</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;">, </span><span style="color: Maroon;">3</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;"> 保留2位小数：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">Digit</span><span style="color: Gray;">.</span><span style="color: Blue;">ceil</span><span style="color: Olive;">(</span><span style="color: Blue;">num</span><span style="color: Gray;">, </span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;br /&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://hpyer.cn/javascript-number-format.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>调用腾讯QQ天气预报的JS代码</title>
		<link>http://hpyer.cn/a-js-code-to-loading-weather-from-qq.html</link>
		<comments>http://hpyer.cn/a-js-code-to-loading-weather-from-qq.html#comments</comments>
		<pubDate>Sat, 17 Sep 2011 01:12:37 +0000</pubDate>
		<dc:creator>Hpyer</dc:creator>
				<category><![CDATA[Web 技术]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[QQ]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[天气预报]]></category>

		<guid isPermaLink="false">http://hpyer.cn/?p=738</guid>
		<description><![CDATA[发一个个人觉得比较好用的天气预报JS代码，是腾讯QQ的，且可以根据访问者的IP自动判断并输出其所在地的天气，很不错哦~ 测试效果： &#160; 代码如下： &#60;div id=&#34;wealth&#34;&#62;&#38;nbsp;&#60;/div&#62;&#60;script type=&#34;text/javascript&#34; src=&#34;http://minisite.qq.com/js/j.minisite.weather.js&#34; charset=&#34;gbk&#34;&#62;&#60;/script&#62;&#60;script type=&#34;text/javascript&#34;&#62;MiniSite.Weather.print(&#34;wealth&#34;);&#60;/script&#62; 以下2012年2月1日更新 最近发现这段代码不能用了，测试后发现，是不能调用QQ的IP库（http://fw.qq.com:80/ipaddress）导致的，所以本人对脚本进行了调整，使其可以手动设置显示哪个城市的天气，并且在无法读取IP库的时候显示默认城市（MiniSite.Weather.defaultCity 的值）的天气。 修改的 j.minisite.weather.js 下载地址： 调用方法： // 和原来一样，但是如果无法读取ip库的情况下会显示默认城市的天气MiniSite.Weather.print(&#34;wealth&#34;);&#160;// 手动设置城市，如果是直辖市，则类似：MiniSite.Weather.print(&#34;wealth&#34;, &#34;XX省&#34;, &#34;XX市&#34;);// 如果是直辖市，则类似：MiniSite.Weather.print(&#34;wealth&#34;, &#34;北京市&#34;, &#34;北京市&#34;); 注：如果仍然想要自动判断用户所在城市的功能，则需要通过服务器端脚本（PHP、ASP、Java等）来实现了。可以谷歌、百度一下“XX读取纯真IP库”（XX是对应的服务器端脚本）。 纯真IP库最新版：http://www.crsky.com/soft/2611.html]]></description>
			<content:encoded><![CDATA[<p>发一个个人觉得比较好用的天气预报JS代码，是腾讯QQ的，且可以根据访问者的IP自动判断并输出其所在地的天气，很不错哦~</p>
<p>测试效果：</p>
<div id="wealth" style="border:1px solid #f00; background:#fff;">&nbsp;</div>
<p><script type="text/javascript" src="http://minisite.qq.com/js/j.minisite.weather.js" charset="gbk"></script><br />
<script type="text/javascript">MiniSite.Weather.print("wealth");</script></p>
<p>代码如下：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">wealth</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Navy;">&amp;nbsp;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://minisite.qq.com/js/j.minisite.weather.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">charset</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">gbk</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br />MiniSite.Weather.print(&quot;wealth&quot;);<br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></div></div>
<h3>以下2012年2月1日更新</h3>
<p>最近发现这段代码不能用了，测试后发现，是不能调用QQ的IP库（http://fw.qq.com:80/ipaddress）导致的，所以本人对脚本进行了调整，使其可以手动设置显示哪个城市的天气，并且在无法读取IP库的时候显示默认城市（MiniSite.Weather.defaultCity 的值）的天气。</p>
<p>修改的 j.minisite.weather.js 下载地址：<a href=http://hpyer.cn/files/j.minisite.weather.zip>Minisite Weather</a> &nbsp; [v1.0 - 4.45 kB - 1 Hits]</p>
<p>调用方法：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: #ffa500;">// 和原来一样，但是如果无法读取ip库的情况下会显示默认城市的天气</span><span style="color: Gray;"><br /></span><span style="color: Blue;">MiniSite</span><span style="color: Gray;">.</span><span style="color: Blue;">Weather</span><span style="color: Gray;">.</span><span style="color: Blue;">print</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">wealth</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: #ffa500;">// 手动设置城市，如果是直辖市，则类似：</span><span style="color: Gray;"><br /></span><span style="color: Blue;">MiniSite</span><span style="color: Gray;">.</span><span style="color: Blue;">Weather</span><span style="color: Gray;">.</span><span style="color: Blue;">print</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">wealth</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">XX省</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">XX市</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;<br /></span><span style="color: #ffa500;">// 如果是直辖市，则类似：</span><span style="color: Gray;"><br /></span><span style="color: Blue;">MiniSite</span><span style="color: Gray;">.</span><span style="color: Blue;">Weather</span><span style="color: Gray;">.</span><span style="color: Blue;">print</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">wealth</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">北京市</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">北京市</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p><strong>注：如果仍然想要自动判断用户所在城市的功能，则需要通过服务器端脚本（PHP、ASP、Java等）来实现了。可以谷歌、百度一下“XX读取纯真IP库”（XX是对应的服务器端脚本）。<br />
纯真IP库最新版：<a href="http://www.crsky.com/soft/2611.html" target="_blank">http://www.crsky.com/soft/2611.html</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://hpyer.cn/a-js-code-to-loading-weather-from-qq.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>获取 javascript 时间戳</title>
		<link>http://hpyer.cn/get-the-timestamp-of-javascript.html</link>
		<comments>http://hpyer.cn/get-the-timestamp-of-javascript.html#comments</comments>
		<pubDate>Mon, 20 Jun 2011 03:52:53 +0000</pubDate>
		<dc:creator>Hpyer</dc:creator>
				<category><![CDATA[Web 技术]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[时间戳]]></category>

		<guid isPermaLink="false">http://hpyer.cn/?p=724</guid>
		<description><![CDATA[获取从 1970年1月1日午夜开始的时间戳（单位：毫秒）。 // 其毫秒部分都为 0，即只是精确到秒的毫秒数// 将值除以 1000 后，可以和 PHP 互通var timestamp = Date.parse(new Date()); 或者： // 精确到毫秒数// 将值除以 1000 后取整也可和 PHP 互通，Math.ceil(timestamp / 1000)var timestamp = (new Date()).valueOf();]]></description>
			<content:encoded><![CDATA[<p>获取从 1970年1月1日午夜开始的时间戳（单位：毫秒）。</p>
<div class="hl-surround"><div class="hl-main"><span style="color: #ffa500;">// 其毫秒部分都为 0，即只是精确到秒的毫秒数</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">// 将值除以 1000 后，可以和 PHP 互通</span><span style="color: Gray;"><br /></span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">timestamp</span><span style="color: Gray;"> = </span><span style="color: Teal;">Date</span><span style="color: Gray;">.</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">Date</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></div></div>
<p>或者：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: #ffa500;">// 精确到毫秒数</span><span style="color: Gray;"><br /></span><span style="color: #ffa500;">// 将值除以 1000 后取整也可和 PHP 互通，Math.ceil(timestamp / 1000)</span><span style="color: Gray;"><br /></span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">timestamp</span><span style="color: Gray;"> = </span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">Date</span><span style="color: Olive;">())</span><span style="color: Gray;">.</span><span style="color: Blue;">valueOf</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://hpyer.cn/get-the-timestamp-of-javascript.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE6 下修复 PNG 图片的 Javascript 代码</title>
		<link>http://hpyer.cn/js-code-about-png-fix-in-ie6.html</link>
		<comments>http://hpyer.cn/js-code-about-png-fix-in-ie6.html#comments</comments>
		<pubDate>Fri, 29 Apr 2011 15:07:42 +0000</pubDate>
		<dc:creator>Hpyer</dc:creator>
				<category><![CDATA[Web 技术]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://hpyer.cn/?p=717</guid>
		<description><![CDATA[　　最近开始学DIV+CSS布局和PS切图，发现PNG这东西是好，图像更真实、逼真，可惜就是IE6对透明背景的PNG图片支持不好，需要辅助以IE提供的滤镜才可以。 　　为了代码可以复用，网上找了很多JS代码，发现没几个好用的。不过Hpyer在此推荐的这个代码使用上还是比较方便的。 　　使用方法： &#60;!--[if lt IE 7]&#62;&#60;script defer type=&#34;text/javascript&#34; src=&#34;js/pngfix_inline.js&#34;&#62;&#60;/script&#62;&#60;script type=&#34;text/javascript&#34; src=&#34;js/pngfix_bg.js&#34;&#62;&#60;/script&#62;&#60;![endif]--&#62; 　　但是，IE6 下 PNG 图片修复后，会存在以下问题： 导致背景图被放大（填充）为整个区域。 &#8211; 要求切图更为细致，样式 padding 也会影响整个区域的大小 导致该区域的链接、按钮等失效。 &#8211; 需要使用样式 position:relative; 再对链接、按钮等修复 下载地址： &#160;]]></description>
			<content:encoded><![CDATA[<p>　　最近开始学DIV+CSS布局和PS切图，发现PNG这东西是好，图像更真实、逼真，可惜就是IE6对透明背景的PNG图片支持不好，需要辅助以IE提供的滤镜才可以。</p>
<p>　　为了代码可以复用，网上找了很多JS代码，发现没几个好用的。不过Hpyer在此推荐的这个代码使用上还是比较方便的。</p>
<p><span id="more-717"></span></p>
<p>　　使用方法：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: #ffa500;">&lt;!--[if lt IE 7]&gt;<br />&lt;script defer type=&quot;text/javascript&quot; src=&quot;js/pngfix_inline.js&quot;&gt;&lt;/script&gt;<br />&lt;script type=&quot;text/javascript&quot; src=&quot;js/pngfix_bg.js&quot;&gt;&lt;/script&gt;<br />&lt;![endif]--&gt;</span></div></div>
<p>　　但是，IE6 下 PNG 图片修复后，会存在以下问题：</p>
<ul>
<li>导致背景图被放大（填充）为整个区域。 &#8211; 要求切图更为细致，样式 padding 也会影响整个区域的大小</li>
<li>导致该区域的链接、按钮等失效。 &#8211; 需要使用样式 position:relative; 再对链接、按钮等修复</li>
</ul>
<p>下载地址：<a href=http://hpyer.cn/files/pngfix.zip>IE6_pngfix</a> &nbsp; [v1.0 - 12.43 kB - 13 Hits]<br /><p>压缩包中包含示例代码</p>
</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://hpyer.cn/js-code-about-png-fix-in-ie6.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>图片幻灯片JSlider</title>
		<link>http://hpyer.cn/codes/jslider</link>
		<comments>http://hpyer.cn/codes/jslider#comments</comments>
		<pubDate>Mon, 19 Jan 2009 03:19:05 +0000</pubDate>
		<dc:creator>Hpyer</dc:creator>
				<category><![CDATA[曾经的过去]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[JSlider]]></category>
		<category><![CDATA[幻灯片]]></category>

		<guid isPermaLink="false">http://hpyer.cn/?page_id=496</guid>
		<description><![CDATA[Summry / 概览： This is an images slide based on Javascript. 这是一款基于 Javascript 的图片幻灯片程序。 DEMO / 示例： http://demo.hpyer.cn/js/jslider/ Download / 下载： Usage / 用法： 1. Import script / 引入脚本 &#60;script language=&#34;javascript&#34; type=&#34;text/javascript&#34; src=&#34;jslider.js&#34;&#62;&#60;/script&#62; 2. Import stylesheet / 引入样式 &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;jslider.css&#34; /&#62; 3. Create slide / 创建幻灯片 &#60;div id=&#34;jslider2&#34; class=&#34;jslider&#34;&#62;&#60;/div&#62;&#60;script language=&#34;javascript&#34; type=&#34;text/javascript&#34;&#62;var items = [...]]]></description>
			<content:encoded><![CDATA[<h3>Summry / 概览：</h3>
<p>This is an images slide based on Javascript.<br />
这是一款基于 Javascript 的图片幻灯片程序。</p>
<h3>DEMO / 示例：</h3>
<p><a href="http://demo.hpyer.cn/js/jslider/" target="_blank">http://demo.hpyer.cn/js/jslider/</a></p>
<h3>Download / 下载：</h3>
<a href=http://hpyer.cn/files/jslider.zip>JSlider</a> &nbsp; [v1.0 - 155.32 kB - 72 Hits]<br /><p>Standard version (without any JS libraries) / 标准版（无须任何 JS 类库）</p>

<h3>Usage / 用法：</h3>
<p>1. Import script / 引入脚本</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">language</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">jslider.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></div></div>
<p>2. Import stylesheet / 引入样式</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Green;">link</span><span style="color: Gray;"> </span><span style="color: #00008b;">rel</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">stylesheet</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">jslider.css</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></div></div>
<p>3. Create slide / 创建幻灯片</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">jslider2</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">jslider</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">language</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br />var items = [];<br />items.push({<br />&nbsp;&nbsp; &nbsp;file: 'images/1.jpg',<br />&nbsp;&nbsp; &nbsp;link: '#1'<br />});<br />items.push({<br />&nbsp;&nbsp; &nbsp;file: 'images/2.jpg',<br />&nbsp;&nbsp; &nbsp;link: '#2',<br />&nbsp;&nbsp; &nbsp;desc: 'Title'<br />});<br />JSlider.init('jslider', items, {width:'200px', height:'200px'});<br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://hpyer.cn/codes/jslider/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用 jsonp 进行 Javascript 的跨域数据访问</title>
		<link>http://hpyer.cn/visit-remote-data-with-jsonp-in-javascript.html</link>
		<comments>http://hpyer.cn/visit-remote-data-with-jsonp-in-javascript.html#comments</comments>
		<pubDate>Thu, 23 Oct 2008 14:32:38 +0000</pubDate>
		<dc:creator>Hpyer</dc:creator>
				<category><![CDATA[Web 技术]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[jsonp]]></category>

		<guid isPermaLink="false">http://hpyer.cn/?p=379</guid>
		<description><![CDATA[　　通过本文的描述，你将会对于 JSONP 有一个比较直观的了解，Hpyer 也相信，聪明的你也肯定可以举一反三的写出属于你自己的代码。在 Web 2.0 的总体趋势之下，JS 显得越来越重要，并成了许多网页制作者所必学的一种脚本，所以，尽情的去体会 JS 带来的乐趣吧，Enjoy it!]]></description>
			<content:encoded><![CDATA[<h4>一、基础知识</h4>
<p>　　1、什么是 <a href="http://www.json.org/" target="_blank">JSON</a>：JavaScript Object Notation (JSON) 是一种轻量级、基于文本、语言无关的数据交换格式。它是从 ECMAScript 语言标准衍生而来的。JSON为轻便的表示结构化数据，定义了一小套格式化规则。以下是一个 JSON 对象的例子：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Image</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Width</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: Maroon;">800</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Height</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: Maroon;">600</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Title</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">View from 15th Floor</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Thumbnail</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Url</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.example.com/image/481989943</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Height</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: Maroon;">125</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Width</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">100</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;">,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">IDs</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">: </span><span style="color: Olive;">[</span><span style="color: Maroon;">116</span><span style="color: Gray;">, </span><span style="color: Maroon;">943</span><span style="color: Gray;">, </span><span style="color: Maroon;">234</span><span style="color: Gray;">, </span><span style="color: Maroon;">38793</span><span style="color: Olive;">]</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: Olive;">}</span><span style="color: Gray;"><br /></span><span style="color: Olive;">}</span></div></div>
<p>　　2、什么是 JSONP：JSONP（JSON with Padding）是一个非官方的协议，它允许在服务器端集成 Script tags 返回至客户端，通过 Javascript callback 的形式实现跨域访问（这仅仅是 JSONP 简单的实现形式）。</p>
<h4>二、JSONP 的原理</h4>
<p>　　首先说明一下，想要使用 JSONP 来进行跨域访问，必须服务器端支持，原因后面再解释。和 AJAX 一样，JSONP 实际上也是早已存在，只是说法相对比较新颖（貌似也出来很久了，额&#8230;），而且所有做网页开发肯定都用过。为什么这么说？应为它用到的只是所有 HTML 元素中一个简单的 script 元素。看到这是不是觉得越发奇怪了？没关系，继续看下去就会茅厕（塞）顿开的，嘿嘿～来看个例子吧：<br />
demo.html 文件</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Gray;">!</span><span style="color: #00008b;">DOCTYPE</span><span style="color: Gray;"> </span><span style="color: #00008b;">html</span><span style="color: Gray;"> </span><span style="color: #00008b;">PUBLIC</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-//W3C//DTD HTML 4.01 Transitional//EN</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.w3.org/TR/html4/loose.dtd</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;"> </span><span style="color: #00008b;">http-equiv</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-Type</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/html; charset=UTF-8</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Demo</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br />function say(words) {<br />&nbsp;&nbsp; &nbsp;alert(words);<br />}<br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">demo.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span></div></div>
<p>demo.js 文件</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">say</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Hello, everyone!</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></div></div>
<p>　　运行 demo.html 文件后，是不是看到写着“Hello, everyone!”的警告框了？你可能会觉得这个例子很简单，没什么了不起的，甚至会在想：这和 JSONP 有关系吗？那么，我可以很肯定的告诉你：有关系！而且，这个例子实际上就是 JSONP 的原型！你也许会想到，JSONP 不是访问远程数据的吗？对，试想一下，如果 demo.js 文件在其它域的服务器上呢？结果会不会出现问题？我也可以很负责的告诉你：不会！你可以将上面例子中的 demo.js 更改为：http://demo.hpyer.cn/php/jsonp.php?callback=say 再试一下。<br />
　　现在，聪明的你应该已经明白 JSONP 到底是怎么回事了，那么，再来解释一下本节开头第一句话吧。看过 demo.js 文件的内容，应该知道，其只是对一个函数（通常称之为：回调函数）的调用，而需要交互的数据则通过参数形势进行返回。所以通过 JSONP 访问的服务器需要提供一个可以设置回调函数名的接口，就像 http://demo.hpyer.cn/php/jsonp.php?callback=say 中的 callback，所以，综上所述 JSONP 是需要服务器端的支持的。附上 jsonp.php 的源码：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Blue;">&lt;?php</span><span style="color: Gray;"><br /></span><span style="color: #00008b;">$type</span><span style="color: Gray;"> = </span><span style="color: Green;">isset</span><span style="color: Olive;">(</span><span style="color: #00008b;">$_GET</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">])</span><span style="color: Gray;"> ? </span><span style="color: #00008b;">$_GET</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">type</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> : </span><span style="color: #8b0000;">''</span><span style="color: Gray;">;<br /></span><span style="color: #00008b;">$callback</span><span style="color: Gray;"> = </span><span style="color: Green;">isset</span><span style="color: Olive;">(</span><span style="color: #00008b;">$_GET</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">callback</span><span style="color: #8b0000;">'</span><span style="color: Olive;">])</span><span style="color: Gray;"> ? </span><span style="color: #00008b;">$_GET</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">callback</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;"> : </span><span style="color: #8b0000;">''</span><span style="color: Gray;">;<br /></span><span style="color: #00008b;">$json</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">''</span><span style="color: Gray;">;<br />&nbsp;<br /></span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: #00008b;">$type</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">'</span><span style="color: Red;">json</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">$json</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">{<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&quot;Image&quot;: {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;Width&quot;: 800,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;Height&quot;: 600,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;Title&quot;: &quot;View from 15th Floor&quot;,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;Thumbnail&quot;: {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;Url&quot;:&nbsp; &quot;http://www.example.com/image/481989943&quot;,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;Height&quot;: 125,<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;Width&quot;: &quot;100&quot;<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;},<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;IDs&quot;: [116, 943, 234, 38793]<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;}</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span><span style="color: Gray;"> </span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">$json</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">&quot;Hello, everyone!&quot;</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: Green;">if</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Green;">empty</span><span style="color: Olive;">(</span><span style="color: #00008b;">$callback</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"><br />&nbsp;&nbsp; &nbsp;</span><span style="color: #00008b;">$json</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$callback</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">'</span><span style="color: Red;">(</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$json</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">'</span><span style="color: Red;">)</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;<br /></span><span style="color: Olive;">}</span><span style="color: Gray;"><br />&nbsp;<br /></span><span style="color: Green;">echo</span><span style="color: Gray;"> </span><span style="color: #00008b;">$json</span><span style="color: Gray;">;<br /></span><span style="color: Blue;">?&gt;</span></div></div>
<h4>三、jQuery 中的应用</h4>
<p>　　自 1.2 版本起，<a href="http://jquery.com/" target="_blank">jQuery</a> 加入了对 JSONP 的支持。我们可以很容易的利用 $.getJSON() 方法（或者其它基于 $.ajax() 的方法），来跨域加载 JSON 数据。来个例子吧：</p>
<div class="hl-surround"><div class="hl-main"><span style="color: Olive;">&lt;</span><span style="color: Gray;">!</span><span style="color: #00008b;">DOCTYPE</span><span style="color: Gray;"> </span><span style="color: #00008b;">html</span><span style="color: Gray;"> </span><span style="color: #00008b;">PUBLIC</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">-//W3C//DTD HTML 4.01 Transitional//EN</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://www.w3.org/TR/html4/loose.dtd</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">meta</span><span style="color: Gray;"> </span><span style="color: #00008b;">http-equiv</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Content-Type</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">content</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/html; charset=UTF-8</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Demo</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">title</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">jquery.js</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">script</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text/javascript</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br />function do_jsonp() {<br />&nbsp;&nbsp; &nbsp;$.getJSON(&quot;http://demo.hpyer.cn/php/jsonp.php?type=json&amp;callback=?&quot;,<br />&nbsp;&nbsp; &nbsp;function(data) {<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$('#result').val('data.Image.IDs: ' + data.Image.IDs);<br />&nbsp;&nbsp; &nbsp;});<br />}<br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">script</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">head</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">a</span><span style="color: Gray;"> </span><span style="color: #00008b;">href</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">javascript:do_jsonp();</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Click me</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">a</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">br</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;</span><span style="color: Green;">textarea</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">result</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">cols</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">50</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">rows</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">5</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">textarea</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">body</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"><br /></span><span style="color: Olive;">&lt;/</span><span style="color: Green;">html</span><span style="color: Olive;">&gt;</span></div></div>
<p>　　你可能注意到上面的例子中，url 被写成了 http://demo.hpyer.cn/php/jsonp.php?type=json&#038;callback=?，需要说明的是，这个问号会被 jQuery 自动替换为回调函数的函数名（如果是一个匿名函数，jQuery 会自动生成一个带时间戳的函数名）。</p>
<h4>四、小结</h4>
<p>　　通过本文的描述，相信你对于 JSONP 有了一个比较直观的了解，Hpyer 也相信，你也肯定可以举一反三的写出属于你自己的代码。其实，JSONP 的实现方法并不是只有回调函数一种，还有其它方式，例如将数据赋值给一个变量等。在 Web 2.0 的总体趋势之下，JS 显得越来越重要，并成了许多网页制作者所必学的一种脚本，所以，尽情的去体会 JS 带来的乐趣吧，Enjoy it!</p>
]]></content:encoded>
			<wfw:commentRss>http://hpyer.cn/visit-remote-data-with-jsonp-in-javascript.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

