<?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/category/web/javascript-web/feed" rel="self" type="application/rss+xml" />
	<link>http://618119.com</link>
	<description>工作,生活,java,apache,tomcat,Resin,mina,Hessian,Openfire,XMPP,RPC,Ubuntu</description>
	<lastBuildDate>Wed, 14 Apr 2010 13:15:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>将wml转换成html的方法。</title>
		<link>http://618119.com/archives/2008/09/07/108.html</link>
		<comments>http://618119.com/archives/2008/09/07/108.html#comments</comments>
		<pubDate>Sun, 07 Sep 2008 08:07:56 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[FireFox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[wml]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2008/09/07/108.html</guid>
		<description><![CDATA[Opera是直接支持wml的，但是有不少bug。
Firefox需要插件wmlbrowser来进行转换。
IE没法直接支持wml显示，但是有个在线转换的工具，通过中间代理的方式来获取内容，再通过js进行转换，效果一般。
今天在查看httpunit相关资料的时候，发现可以通过wmlbrowser的源代码，将wml转换成html，再借助httpunit的html支持，
来实现对wml的支持，因此实现针对wap网站的测试。
简单体验了一下，
首先下载，http://ftp.osuosl.org/pub/mozdev/wmlbrowser/wmlbrowser-0.7.18.xpi。
解压找到 wmlbrowser.jar，在从wmlbrowser.jar\content\wmlbrowser中提取wml.css，wml.js，wml.xsl三个文件。
写一个测试的wml，取名为test.xml
再第一行后面加上：
&#60; ?xml-stylesheet href=&#8217;wml.xsl&#8217; type=&#8217;text/xsl&#8217; ? &#62;
编辑 wml.xsl，将
&#60;script type=&#8221;text/javascript&#8221; src=&#8221;chrome://wmlbrowser/content/wml.js&#8221;&#62;// hack&#60;/script&#62;
&#60;link href=&#8221;chrome://wmlbrowser/content/wml.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&#62;
改成
&#60;script type=&#8221;text/javascript&#8221; src=&#8221;wml.js&#8221;&#62;// hack&#60;/script&#62;
&#60;link href=&#8221;wml.css&#8221; rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&#62;
然后保存。
用ie打开test.xml，可以看到wml被正常转换成html了。
由于wml.xsl，wml,js，wml.css是各浏览器通用的，因此照此思路，可以基于ie做一个同样的wmlbrowser插件。
相关参考：
http://www.nabble.com/WML-support-for-httpunit-td9558351.html

	Tags: FireFox, html, Opera, wml, xsl

	Related posts
	
	深圳电信的http://219.133.33.37/update/step1.aspx?p (1)
	在神舟笔记本优雅HP540(d3)上安装Linux(Ubuntu8.10) (0)
	在64位 Ubuntu 9.04 上编译Firefox 3.5 (2)
	关于wml的文本框缓存问题 (0)
	个人常用Firefox插件及下载地址 (0)


]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/09/07/108.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;
}
function checkId(){
var code=document.getElementById("idCode").value;
if(code==null &#124;&#124; ( code.length!=15 &#38;&#38; code.length!=18)){
alert("请输出正确长度的身份证号码！");
return;
}
var xzqhCode=code.substr(0,6);
var xzqhName=getName(xzqhCode);
//先判断行政区划信息
if(xzqhName==null){
alert("没有该身份证号码的地区信息，很可能是假身份证号码！");
return;
}
//再判断是否都是数字和X.
for(var i=0;i&#60;code.length;i++){
if(i&#60;17){
if(code.charAt(i)&#62;"9" &#124;&#124; code.charAt(i)&#60;"0"){
alert("你输入的身份证号码有误，可能是假身份证号码！");
return;
}
}
if(i==17){//盘判断第17位
if(! ( (code.charAt(i) &#62;= "0" &#38;&#38; code.charAt(i) &#60;= "9" )&#124;&#124; code.charAt(i)=='X' &#124;&#124; code.charAt(i)=='x') ){
alert("你输入的身份证号码有误，可能是假身份证号码！");
return ;
}
}
}
var year=1900;//出生年
var month=1;//出生月
var [...]]]></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;
}
[/code]
数据节选：
110000&#124;北京市
110100&#124;北京市市辖区
110101&#124;北京市市辖区东城区
110102&#124;北京市市辖区西城区
110103&#124;北京市市辖区崇文区
110104&#124;北京市市辖区宣武区
110105&#124;北京市市辖区朝阳区
110106&#124;北京市市辖区丰台区
110107&#124;北京市市辖区石景山区
110108&#124;北京市市辖区海淀区
110109&#124;北京市市辖区门头沟区
110111&#124;北京市市辖区房山区
110112&#124;北京市市辖区通州区
110113&#124;北京市市辖区顺义区
110114&#124;北京市市辖区昌平区
110115&#124;北京市市辖区大兴区
110116&#124;北京市市辖区怀柔区
110117&#124;北京市市辖区平谷区
110200&#124;北京市县
110228&#124;北京市密云县
110229&#124;北京市延庆县
120000&#124;天津市
120100&#124;天津市市辖区
120101&#124;天津市市辖区和平区
120102&#124;天津市市辖区河东区
120103&#124;天津市市辖区河西区
120104&#124;天津市市辖区南开区
120105&#124;天津市市辖区河北区
120106&#124;天津市市辖区红桥区
120107&#124;天津市市辖区塘沽区
120108&#124;天津市市辖区汉沽区
120109&#124;天津市市辖区大港区
120110&#124;天津市市辖区东丽区
120111&#124;天津市市辖区西青区
120112&#124;天津市市辖区津南区
120113&#124;天津市市辖区北辰区
120114&#124;天津市市辖区武清区
120115&#124;天津市市辖区宝坻区
120200&#124;天津市县
120221&#124;天津市宁河县
120223&#124;天津市静海县
120225&#124;天津市蓟县

	Tags: gis, javascript, 行政区划

	Related posts
	
	获取公开的中国地图信息和使用MapBasic提取MapInfo地图资源信息 (0)
	用JavaScript为OpenLayers.Marker的加上单击显示详细信息的功能 (0)
	深圳的几个办事地点的位置及相关公交路线 (0)
	将google托管的ajax js文件同步到本地服务器 (1)
	在geoserver和Mapinfo中过滤重复显示的标注 (1)


]]></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
&#62; server 202.96.128.86
DNS request timed out.
timeout was 2 seconds.
Default Server:  [202.96.128.86]
Address:  202.96.128.86
&#62; server 202.96.128.86
Default Server:  cache-a.guangzhou.gd.cn
Address:  202.96.128.86
&#62; set q=cname
&#62; www.google.com
Server:  cache-a.guangzhou.gd.cn
Address:  202.96.128.86
Non-authoritative answer:
www.google.com  canonical [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2008/01/29/68.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
4.在wp-content/themes/default/single.php中加上
&#60;script class=&#8221;javascript&#8221; src=&#8221;/wp-content/plugins/google-syntax-highlighter/Scripts/highlighter.js&#8221;&#62;&#60;/script&#62;
这行加在 &#60;?php get_footer(); ?&#62; 的前面.
这样就实现了纯js的 语法高亮,且不对现有的可视化编辑造成影响,也支持用户在禁止了 Javascript的情况下正常浏览.
由于使用的动态增加css和js,因此对于禁止Javascript的情况下,浏览速度非常快,和没启用语法高亮一样.
我写的js代码大致有:
[code]
//如果存在code标记,则加载语法高亮的JavaScript
var codeTag="code";//code标记名
var highlighterUriPerfix="/wp-content/plugins/google-syntax-highlighter/";
var postElement=null;
//找到class 为 entry的对象进行处理
var tags=document.getElementsByTagName("div"); // class 为 entry
for(var i = 0; [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2007/11/28/32.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
