问两个javascript函数的用途:
一个是:function preprocessURL(url,conditions) {
    if(conditions==null||conditions.length==0) return url;
    var beginIndex = 0;
    var endIndex = url.indexOf("?",beginIndex);
    if(endIndex>0){
      var newURL = "";
      newURL+=url.substring(beginIndex, endIndex);
      newURL+="?";
      for(var i=0;i<conditions.length;i++){
        var condition = conditions[i];
        var conditionValue = condition;
        if(/^[&\$]/.test(condition)){
          condition = condition.substring(1,condition.length);          var conditionObj = document.all(condition);
          if(conditionObj == null){
            alert("Condition identified by '" + conditions[i] + "' not exist!");
            continue;
          }
          conditionValue = conditionObj.value;
        }
        beginIndex = endIndex+1;
        endIndex = url.indexOf("?",beginIndex);
        if(endIndex<0)
          break;
        newURL += url.substring(beginIndex, endIndex);
        newURL +=conditionValue;
      }
      return newURL;
    }else{
      return url;
    }
  };
还有一个:function populateValueToTarget(value,targets,seperatorOrReturnValueProperty){         if(targets==null||value==null)
           return;         var splitValues = null;
         var splitTargets = targets.split(",");
         if(value instanceof String || typeof(value)=='string'){ //如果返回值为字符串
           if(seperatorOrReturnValueProperty==null||seperatorOrReturnValueProperty=='')
             seperatorOrReturnValueProperty=",";
           splitValues = splitString(value,seperatorOrReturnValueProperty);
         }else{ //如果返回值为js对象           splitValues = new Array();           if(seperatorOrReturnValueProperty==null||seperatorOrReturnValueProperty==''){
              for (var aProperty in value){
               splitValues[splitValues.length] = value[aProperty];
              }
           }else{
             var properties = seperatorOrReturnValueProperty.split(",");
             for(var i=0;i<properties.length;i++){
               splitValues[splitValues.length] = value[properties[i]];
             }
           }
         }
         if(splitValues==null||splitTargets==null)
           return;         var length = splitValues.length > splitTargets.length? splitTargets.length:splitValues.length;
         for(var i=0;i<length;i++){
           if(splitTargets[i] == "#")
             continue;
           var element = document.all(splitTargets[i]);
           if(element==null){
             alert("Element identified by " + splitTargets[i]  + " not exist!");
           }
           document.all(splitTargets[i]).value = splitValues[i];
           //触发数据变化的处理         }
          for(var i=0;i<length;i++){
           var htmlElement = document.all(splitTargets[i]);
           if(htmlElement.onchange!="undefined"&&htmlElement.onchange!=null)
              htmlElement.onchange();
         }
        }

解决方案 »

  1.   

    第一个是这样的,如果我的conditions里面有{"a", "b"},url是http://www.baidu.com?a=?&b=?,那么返回的url是http://www.baidu.com?a=a&b=b
    如果我的conditions里面是{"&a", "$b"}, url是http://www.baidu.com?a=?&b=?,且页面元素有name为a和b两个元素,且值为1和2,那么返回的url是http://www.baidu.com?a=1&b=2所以,第一个方法是用来做参数绑定的,如果以&或者$开头,那么这个condition表示的是元素名,参数用元素值绑定。否则那个就是就代表具体的值,直接绑定进url的对应参数中。
      

  2.   

    第二个,是用来做数据恢复的。
    如果, seperatorOrReturnValueProperty是"#",value是"a#b",splitTargets是{"name","no"},那么页面上name为"name","no"的元素的值分别变为"a", "b",并且触发onchange相应的事件。
    如果, seperatorOrReturnValueProperty是"a,b",value是具有a和b属性的对象,并且之分别为1和2,splitTargets是{"name","no"},那么页面上name为"name","no"的元素的值分别变为"1", "2",并且触发onchange相应的事件。并且,splitTargets的某一项如果为#,则那一项的页面元素的值不变。如果value为string时,seperatorOrReturnValueProperty的默认值为","。否则,seperatorOrReturnValueProperty的默认值是value的每个属性。
      

  3.   

    哦,因为现在做java什么都需要懂,javascript要懂、dhtml要懂、ajax要懂、xml要懂、正则要懂、sql要懂、数据库要懂、webserver要懂、java要懂、java里面的jvmclassloader设计模式规范面向对象sshIOCAOPESBSOATDD...这些光懂当然还不够,最好是精通,我觉得有点点烦,如果你觉得不烦还挺爽那么你是超人,我不是。如果说鸡零狗碎懂得多就叫牛人那么这个牛应该是当牛做马的牛。很多领域已放弃,没那个精力逐个精通去了,比如js这些页面方面的,看看csdn页面版的牛人们我觉得几年之内是赶不上了,个人有个人的专长吧。
      

  4.   

    搞JAVA的总感觉什么都要懂点,要不实在不好写。。不过也好,能多学点,代码俺也收了。哈哈