`
lqixv
  • 浏览: 213417 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

在xyTree中添加unicode转gbk功能

JSF 
阅读更多

与DTree相比,xyTree的性能好很多,只是麻烦点。

在jsf应用的时候,xyTree的中文变成了乱码,现在添加一个方法用于把unicode码转换为GBK码。

 

首先打开DivTree.js,找到xyTree.TreeConfig,在里面增加一个变量,用于设定是否要进行转换:

translate				: true		 /* 是否把unicode码进行转换 */

接着在后面增加一个全局的函数,这个函数用于转换:

/*
 * 全局函数,added by Tom
 * 定义了把unicode码转换为gbk码
 */
xyTree.trans = {
  runicode : function(s){ 
	 var k=s.split(";"); 
	 var rs=""; 
	 for(i=0;i<k.length;i++)
	 {	
		var strIndex=k[i].indexOf("&#");
		var newstr = k[i];
		if(strIndex>-1)
		{
			var kstr = "";
			
			if(strIndex>0)
			{
				kstr = newstr.substring(0,strIndex);
				rs+=kstr;
				newstr = newstr.substring(strIndex);
			}
			 var m=newstr.replace("&#",'');
			 rs+=String.fromCharCode(m) ; 
		}
		else
			rs+=k[i];
	 }
	 return rs;  
	} 
};

 

继续往下找,找到方法:xyTree.DivTree = function(name,img)

把里面的:

  /**
   * 树的节点数组对象
   * @type xyTree.Tree
   */
  this.tree = new xyTree.Tree(name, objectname);

 改为:

  /**
   * 树的节点数组对象
   * @type xyTree.Tree
   */
  if(xyTree.TreeConfig.translate)
  	this.tree = new xyTree.Tree(xyTree.trans.runicode(name), objectname);
  else
  	this.tree = new xyTree.Tree(name, objectname);

 这个改动用于把根节点的内容改为gbk码。

 

下面把子节点的内容也改问gbk码:

首先打开node.js,找到方法:xyTree.Node = function(name)

把里面的内容:

  /**
   * 节点的显示名称
   * @type String
   */
  this.name = name ;

 改为:

  /**
   * 节点的显示名称
   * @type String
   */
  if(xyTree.TreeConfig.translate){
  	if(name)
	  	this.name = xyTree.trans.runicode(name) ;
  }
  else
  	this.name = name ;

 

然后再找到相应Normal的js,做同样的修改即可。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics