<?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>lizongbo at 618119.com &#187; javascript</title>
	<atom:link href="http://618119.com/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>http://618119.com</link>
	<description>工作,生活,Android,前端,Linode,Ubuntu,nginx,java,apache,tomcat,Resin,mina,Hessian,XMPP,RPC</description>
	<lastBuildDate>Tue, 31 Jan 2012 14:25:11 +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>Android4.0系统浏览器支持window.performance API了</title>
		<link>http://618119.com/archives/2012/01/31/217.html</link>
		<comments>http://618119.com/archives/2012/01/31/217.html#comments</comments>
		<pubDate>Tue, 31 Jan 2012 14:25:11 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[前端开发]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://618119.com/?p=217</guid>
		<description><![CDATA[Android4.0系统浏览器支持window.performance API了 window.performance API是HTML5规范的一部分， window.performance规范的官方文档在： https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html 目前还是草稿阶段，中文介绍可以参考： http://www.cnblogs.com/_franky/archive/2011/11/07/2238980.html webkit的测试用例和属性列表可以参考： http://svn.webkit.org/repository/webkit/trunk/LayoutTests/fast//dom/Window/window-properties-performance.html http://svn.webkit.org/repository/webkit/trunk/LayoutTests/fast//dom/Window/window-properties-performance-expected.txt Android4.0系统自带的浏览器实现了这一规范，并且还扩展实现window.performance.memory。 通过JavaScript实际测试结果如下： window.performance.memory=[object MemoryInfo] window.performance.timing=[object PerformanceTiming] window.performance.navigation=[object PerformanceNavigation] window.performance.timing.connectStart=1328016452403 window.performance.timing.responseStart=1328016452403 window.performance.timing.domLoading=1328016453857 window.performance.timing.connectEnd=1328016452403 window.performance.timing.domInteractive=0 window.performance.timing.fetchStart=1328016452403 window.performance.timing.secureConnectionStart=0 window.performance.timing.domainLookupStart=1328016452403 window.performance.timing.responseEnd=0 window.performance.timing.requestStart=1328016452403 window.performance.timing.loadEventEnd=0 window.performance.timing.domComplete=0 window.performance.timing.redirectStart=0 window.performance.timing.unloadEventEnd=1328016453646 window.performance.timing.domContentLoadedEventStart=0 window.performance.timing.domContentLoadedEventEnd=0 window.performance.timing.domainLookupEnd=1328016452403 window.performance.timing.navigationStart=1328016452402 window.performance.timing.unloadEventStart=1328016453646 window.performance.timing.loadEventStart=0 window.performance.timing.redirectEnd=0 window.performance.navigation.redirectCount=0 window.performance.navigation.type=1 window.performance.navigation.TYPE_NAVIGATE=0 window.performance.navigation.TYPE_RELOAD=1 window.performance.navigation.TYPE_BACK_FORWARD=2 window.performance.navigation.TYPE_RESERVED=255 window.performance.memory.totalJSHeapSize=0 window.performance.memory.usedJSHeapSize=0 window.performance.memory.jsHeapSizeLimit=0 PS:Android从2.1版本还扩展实现了navigator.connection： 通过JavaScript测试结果如下： navigator.connection.type=4 navigator.connection.UNKNOWN=0 navigator.connection.ETHERNET=1 navigator.connection.WIFI=2 [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2012/01/31/217.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Android的webview中定制js的alert,confirm和prompt对话框的方法</title>
		<link>http://618119.com/archives/2010/12/20/199.html</link>
		<comments>http://618119.com/archives/2010/12/20/199.html#comments</comments>
		<pubDate>Mon, 20 Dec 2010 12:33:28 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[前端开发]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[onJsAlert]]></category>
		<category><![CDATA[onJsConfirm]]></category>
		<category><![CDATA[onJsPrompt]]></category>
		<category><![CDATA[WebView]]></category>

		<guid isPermaLink="false">http://618119.com/?p=199</guid>
		<description><![CDATA[1.首先继承android.webkit.WebChromeClient实现MyWebChromeClient。 2.在MyWebChromeClient.java中覆盖onJsAlert,onJsConfirm,onJsPrompt三个方法。 3.在初始化Webview时设置调用webview.setWebChromeClient(new MyWebChromeClient()); 4.在Webview载入的html中使用window.alert,window.confirm,window.prompt方法，系统弹出的将是自定义实现的对应对话框。 MyWebChromeClient.java的代码如下： [code] package com.lizongbo.mwebdev.android; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnKeyListener; import android.graphics.Bitmap; import android.os.Message; import android.util.Log; import android.view.KeyEvent; import android.webkit.JsPromptResult; import android.webkit.JsResult; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.widget.EditText; public class MyWebChromeClient extends WebChromeClient { @Override public void onCloseWindow(WebView window) { super.onCloseWindow(window); } @Override public boolean onCreateWindow(WebView [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/12/20/199.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>将google托管的ajax js文件同步到本地服务器</title>
		<link>http://618119.com/archives/2010/04/14/164.html</link>
		<comments>http://618119.com/archives/2010/04/14/164.html#comments</comments>
		<pubDate>Wed, 14 Apr 2010 13:14:25 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://618119.com/?p=164</guid>
		<description><![CDATA[google提供了供全世界访问的公共javascript库托管， 参考：http://code.google.com/intl/zh-CN/apis/ajaxlibs/ 只要使用 &#60;script src=&#8221;http://www.google.com/jsapi&#8221;&#62;&#60;/script&#62; 引用google的js， 然后使用 google.load() 方法，就可以指定载入对应库的对应版本。 例如：google.load(&#8220;jquery&#8221;, &#8220;1&#8243;); 就可以载入当前最新的jquery库。 虽然google承诺无限期地托管各版本的js文件，但是由于大部分人知道的原因，在国内使用这种方式共享js资源存在一定风险。 因此，我参考google对这些js的部署结构，将js下载回来放到了本地服务器。 目前托管的js库有以下组件： jQuery jQuery UI Prototype script.aculo.us MooTools Dojo SWFObject Yahoo! 用户界面库 (YUI) Ext Core 全部都同步下来，操作步骤如下： 先在Firefox里打开： http://www.google.com/jsapi 然后将js保存到成本地文件，然后用Aptana打开，并格式化，然后找到 google.loader.rpl，然后把括号里一段json对象复制出来，定义成  var jslibs; 然后通过js生成对应js的url。然后使用java下载到本地保存到对应目录。 代码参考： &#60;SCRIPT LANGUAGE=&#8221;JavaScript&#8221;&#62; &#60;!&#8211; var jslibs={ &#8220;:jquery&#8221; : { &#8220;versions&#8221; : { &#8220;:1.2.3&#8243; : { &#8220;uncompressed&#8221; : &#8220;jquery.js&#8221;, &#8220;compressed&#8221; : [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2010/04/14/164.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>javascript实现身份证号码的验证</title>
		<link>http://618119.com/archives/2008/06/04/94.html</link>
		<comments>http://618119.com/archives/2008/06/04/94.html#comments</comments>
		<pubDate>Wed, 04 Jun 2008 15:48:50 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/06/04/94.html</guid>
		<description><![CDATA[整理了一份javascript对身份证进行验证的程序。 源文件在： http://618119.com/docs/gis/shenfenzheng.html javascript 代码为： function getName(code){ var name=xzqh[code]; if(name==null){ return name; } //如果不是00结尾的，则补上市名称，659000例外 429000,469000 if(code%100 != 0 &#38;&#38; (code-code%100)!=659000 &#38;&#38; (code-code%100)!=429000 &#38;&#38; (code-code%100)!=469000){ var cityName=xzqh[(code-code%100)]; if(cityName.length&#62;1){//过滤掉只有一个字的“县” name=cityName+name; } } //如果不是0000结尾的，再补上省名称 if(code%10000 != 0){ name=xzqh[(code-code%10000)]+name; } return name; } function genData(){ var str=""; for(code in xzqh){ //整理成竖线分隔的每行一条记录 str+=  ""+code  +"&#124;" +getName(code) +"\n"; } document.getElementById("soapres").value=str; } [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/06/04/94.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>整理行政区划数据的几个操作步骤</title>
		<link>http://618119.com/archives/2008/05/31/90.html</link>
		<comments>http://618119.com/archives/2008/05/31/90.html#comments</comments>
		<pubDate>Fri, 30 May 2008 17:58:40 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[gis]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[行政区划]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/05/31/90.html</guid>
		<description><![CDATA[1.数据来源： 中华人民共和国统计局官方网站： 最新县及县以上行政区划代码（截止2007年12月31日） http://www.stats.gov.cn/tjbz/xzqhdm/t20080215_402462675.htm 2.保存为文本文件。 3.使用EditPlus进行排序，再删除冗余信息 4.替换掉星号去掉 (*)和 (**) 5.替换空格，规整成javascript数组的形式. 需要替换的有&#8221; 县&#8221; ,空格个数从多到少的进行替换. 6.进行名称补全。 xxyyzz的，前面补上 xx0000和xxyy00的名字 然后xxyy00的，前面再补上xx0000的名字 这样每个行政区划代码对应的名称都是完整的了。 7.使用js进行控制，以生成各种想要的数据格式。 JavaScript代码在： http://618119.com/docs/gis/xzqh.html 整理好的数据文本在： http://618119.com/docs/gis/xzqh.txt 代码片段: [code] function getName(code){ var name=xzqh[code]; //如果不是00结尾的，则补上市名称，659000例外 429000,469000 if(code%100 != 0 &#38;&#38; (code-code%100)!=659000 &#38;&#38; (code-code%100)!=429000 &#38;&#38; (code-code%100)!=469000){ var cityName=xzqh[(code-code%100)]; if(cityName.length&#62;1){//过滤掉只有一个字的“县” name=cityName+name; } } //如果不是0000结尾的，再补上省名称 if(code%10000 != 0){ name=xzqh[(code-code%10000)]+name; } return name; } [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/05/31/90.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于分布式负载均衡的几个设置</title>
		<link>http://618119.com/archives/2008/01/29/68.html</link>
		<comments>http://618119.com/archives/2008/01/29/68.html#comments</comments>
		<pubDate>Tue, 29 Jan 2008 00:38:31 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[DNS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[负载均衡]]></category>
		<category><![CDATA[集群]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/01/29/68.html</guid>
		<description><![CDATA[服务器对外的展现要统一，简洁。 即用户在URL里看到的地址是很方便记忆的。 而对于页面中嵌入的图片，脚本，样式表，视频，音频等文件，则可以放在其它服务器上。 第一层： DNS记录轮询负载均衡 以 www.google.com为例进行分析 1.首先是将 www.google.com，指定多个cname,根据不同的网络线路请求得到不同的别名 比如在中国得到的别名为：www.l.google.com, www.l.google.com 的别名为： www-china.l.google.com www-china.l.google.com再指定多个ip的a记录， 例如 ip 64.233.189.99, 64.233.189.104,64.233.167.147. 99,104,147这三个ip分别实现ip别名绑定，即如果99这个ip挂了，104会自动接管该ip到本机。 通过这样的方式，保证用户最终访问到的ip始终在线。 在cname解析的地方，可以使用多层cname解析，以实现更细粒度的负载均衡并灵活切换。 假设当www-china.l.google.com下整个节点都断网了，则只需要将www.l.google.com指向www-usa.l.google.com这样就可以切换了。 （纯属猜测：指定了cname的域名，则不要再配置a记录，因为a记录的优先级比cname高。） dns解析过程记录如下： [code] E:\&#62;nslookup DNS request timed out. timeout was 2 seconds. *** Can't find server name for address 192.168.18.1: Timed out *** Default servers are not available Default Server:  UnKnown Address:  192.168.18.1 [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/01/29/68.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用JavaScript为OpenLayers.Marker的加上单击显示详细信息的功能</title>
		<link>http://618119.com/archives/2008/01/25/67.html</link>
		<comments>http://618119.com/archives/2008/01/25/67.html#comments</comments>
		<pubDate>Fri, 25 Jan 2008 01:09:11 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[geoserver]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[OpenLayers]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/01/25/67.html</guid>
		<description><![CDATA[ 代码实现的效果为： 用于显示时，在地图上标记出对应的坐标，单击该标注时显示详细信息，再单击标注，隐藏详细信息， /* 标记地区 参数 deleteEnable 是否允许删除 adminCode 行政区号，6位长 alarmLevel 图标级别 alarmMsg 消息 */ function lzbmarkArea(deleteEnable, adminCode,alarmLevel,alarmMsg){ var isSelected=0; var lonLatx=112; var lonLaty=22.5; var adminName=&#8221;"; if(!alarmMsg){alarmMsg=&#8221;"}; for(var i=0;i&#60;=gdareainfo.length;i++){ if(gdareainfo[i]==adminCode){ lonLatx=gdareainfo[i-2]; lonLaty=gdareainfo[i-1]+0.5; adminName=gdareainfo[i+1]; } } if(adminName==&#8221;") { //alert(&#8216;no info &#8216;); return; }; for(var j = markers.markers.length-1; j &#62;=0 ; j&#8211;){ if(adminCode == markers.markers[j].adminCode) { markers.removeMarker(markers.markers[j]); } [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/01/25/67.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>参考Google Syntax Highlighter for WordPress 定制纯Javascript实现的代码语法高亮</title>
		<link>http://618119.com/archives/2007/11/28/32.html</link>
		<comments>http://618119.com/archives/2007/11/28/32.html#comments</comments>
		<pubDate>Wed, 28 Nov 2007 04:30:02 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[SyntaxHighlighter]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2007/11/28/32.html</guid>
		<description><![CDATA[Google Syntax Highlighter for WordPress. 是代码加亮插件,但是该插件与文章的可视化编辑存在冲突, 参考 : http://www.ajaxgo.org/press/?p=6 并且在 pre标签内如果写 xml代码,在可视化编辑的情况下,就会被SyntaxHighlighter转出一堆转码字符, 而在源代码模式下,如果浏览器禁用了 Javascript,则无法看到完整的xml内容. 加之我喜欢在代码里使用 [ code ] [ /code ] 这样用中括号的标记, SyntaxHighlighter却只支持 pre标记,于是我根据这个插件,针对自己的博客做了改造. 实现简洁方便的语法高亮,既不影响后台对文章的编辑效果,也不影响文章在启用javascript和禁用 Javascript两种情况下的显示. 实现的思路如下. 在显示文章的页面里, 通过Javascript动态查找到 class为entry的div,这个就是显示文章内容的地方了, 然后操作innerHtml,将[ code ]与 [ /code ]之间的html内容进行解析替换, 自动识别代码类型然后将其转换为 pre 标记,再调用dp.SyntaxHighlighter.HighlightAll(&#8216;code&#8217;),进行代码高亮. 我的具体操作步骤如下: 1.下载 http://downloads.wordpress.org/plugin/google-syntax-highlighter.1.5.1.zip (也可以直接下载 http://syntaxhighlighter.googlecode.com/files/SyntaxHighlighter_1.5.1.rar,不过需要调整一下相关目录 上传到服务器之后保持google-syntax-highlighter目录即可.) 2.解压上传到 http:///618119.com/wp-content/plugins/ (后台管理中不要启用插件) 3.编写三个js文件,并上传到服务器. highlighter.js  http://618119.com/wp-content/plugins/google-syntax-highlighter/Scripts/highlighter.js mySyntaxHighlighter.js http://618119.com/wp-content/plugins/google-syntax-highlighter/Scripts/mySyntaxHighlighter.js doSyntaxHighlighter.js http://618119.com/wp-content/plugins/google-syntax-highlighter/Scripts/doSyntaxHighlighter.js [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2007/11/28/32.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>在 Spket IDE 1.6.4 中使用 Ext 2.0</title>
		<link>http://618119.com/archives/2007/10/22/12.html</link>
		<comments>http://618119.com/archives/2007/10/22/12.html#comments</comments>
		<pubDate>Mon, 22 Oct 2007 10:11:25 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JAVA IDE]]></category>
		<category><![CDATA[Ext]]></category>
		<category><![CDATA[Extjs]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Spket]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2007/10/22/12.html</guid>
		<description><![CDATA[Spket是个非常优秀的javascript开发工具，Ext则是非常优秀的javascript库。 在 Spket IDE 1.6.4中使用Ext 2.0 . 1.下载: http://www.spket.com/downloads/spket-1.6.4.1.jar 引用页 http://www.spket.com/download.html http://extjs.com/deploy/ext-2.0-beta1.zip 引用页 http://extjs.com/download 2.运行 java -jar spket-1.6.4.1.jar进行安装 3.解压ext-1.1.1.zip 4.启动 Spket IDE, 5.new Project &#8220;testExt&#8221;, new File &#8220;test.js&#8221; 6.将ext-all.js 复制到D:\Documents and Settings\lizongbo\workspace\testExt 7.然后再在test.js里开头加上 /** * @include &#8220;/testExt/ext-all.js&#8221; */ testExt为项目名字. 然后再在test.js里写代码就有ext的提示了. 输入Ext,然后按 Alt +/ ，就可以看到语法提示。 Tags: Ext, Extjs, javascript, Spket]]></description>
		<wfw:commentRss>http://618119.com/archives/2007/10/22/12.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

