关于dtree中cookie读写的问题

来源:互联网 发布:dnf工作室网站源码 编辑:程序博客网 时间:2024/05/07 11:54

      我在项目开发中发现dtree在点击完后,如果整个画面进行刷新之前的焦点位置就不正确了。初始对程序进行了分析后没有发现问题,最后就对dtree中读写cookie的地方进行了改造,改造完后程序运行正常。

下面把改造后的程序代码贴出来大家给提提意见。

// [Cookie] Sets value in a cookie
dTree.prototype.setCookie = function(cookieName, cookieValue, expires, path, domain, secure) {
 writeCookie(cookieName, cookieValue);
};

// [Cookie] Gets a value from a cookie
dTree.prototype.getCookie = function(cookieName) {
 return readCookiefile(cookieName);
};
//create temp file Object save url
function getFileObjectf(readORwrite){
 var fso, ts;
 var file = getTempDir() + "/f1";
 fso=new ActiveXObject("Scripting.FileSystemObject");
 if(!fso.FileExists(file)){
  fso.createtextfile(file ,true);
 }
 ts = fso.OpenTextFile(file, readORwrite, true);
 return ts;
}
//create temp file Object save doc
function getFileObjectd(readORwrite){
 var fso, ts;
 var file = getTempDir() + "/f2";
 fso=new ActiveXObject("Scripting.FileSystemObject");
 if(!fso.FileExists(file)){
  fso.createtextfile(file ,true);
 }
 ts = fso.OpenTextFile(file, readORwrite, true);
 return ts;
}
//write file cookieValue
function writeCookie(cookieName, cookieValue){
 var ts;
 var ForWriting=2;
 if(cookieName=="cstree"){
  ts = getFileObjectf(ForWriting);
 }
 if(cookieName=="cotree"){
  ts = getFileObjectd(ForWriting);
 }
 ts.write(cookieValue);
 ts.close();
}
//get file size
function getFileByte(filename){
 var fso,f;
 fso=new ActiveXObject("Scripting.FileSystemObject");
 if(!fso.FileExists(filename)){
  return -1;
 }
 f=fso.GetFile(filename);
 return f.size;
}
//read file cookieName
function readCookiefile(cookieName){
 var ts, rs;
 var len = 0;
 var ForReading = 1;
 var filepath = getTempDir();
 if(cookieName=="cstree"){
  ts = getFileObjectf(ForReading);
  len = getFileByte(filepath + "f1");
 }
 if(cookieName=="cotree"){
  ts = getFileObjectd(ForReading);
  len = getFileByte(filepath + "f2");
 }
 if(len<=0){
  rs = "";
 }else{
  rs = ts.readLine();
 }
 ts.close();
 return rs;
}
//get system temp dir
function getTempDir(){
 var fso = new ActiveXObject("Scripting.FileSystemObject");
 return fso.GetSpecialFolder(2);
}

改写为本地读写文件后有个坏处就是必须修改IE的安全设置。

原创粉丝点击