当前位置: 代码迷 >> Web前端 >> bug处置日志1
  详细解决方案

bug处置日志1

热度:320   发布时间:2012-10-14 14:55:08.0
bug处理日志1
最近工作需要,需要实现一个这样的功能:点击选择按钮,弹出一个新的窗口里面是个网点的树形下拉菜单,点击树形菜单,父窗口里面的某个文本框显示选中网点的网点名称,相应的隐藏域里被初始化一个为网点的ID值, 同时父窗口中的一个select选择框添加这个网点下所有的部门的option,并且关闭打开的新窗口: 出现的第一个问题是在添加select的option上,因为要调用ajax访问后台,后台传送一个json数组到前台,但是ajax请求总是不能成功的完成,后来发现因为javascript调用一个function的时候,function后面的代码是同时被执行的,在调用添加option函数后,调用了window.close();,所以ajax没能完成,以下是添加option的函数
function addDepartment(dept_id){
    var url = "<%=_base%>/dept/finddepart.do?dept_id="+dept_id;  
    sendAjaxReq("get",url,null,function(req){
        	alert(req.responseText);  
	   		eval("var departs="+req.responseText);  
		    		var oDom=opener.document; 
		    		var e2 = oDom.getElementById("s1");
		    		e2.options.length=1;  
		   for(var i=0;i<departs.length;i++){  
		    		 
	    			var opt = oDom.createElement("option");
	    			 opt.text = departs[i].name;  
	    			 opt.value = departs[i].no; 
	    			  
	    			 if(window.navigator.userAgent.toLowerCase().indexOf("ie")>0){
		    		 	   
	    			 	e2.options.add(opt);   
	    			 }else{   
		    		 	 
	    			 	e2.appendChild(opt);
	    			 }    
		    	}   
		   		    
		         window.close();   
	  		});
}


解决这个问题后,发现窗口关闭不了。 出现了个js运行时异常,提示信息时‘服务器发生异常’ 令我抓狂了一段时间,后来发现时在
var opt = oDom.createElement("option");
  中的oDom,我直接用了document,而不是父窗口的document对像,从而往父窗口添加option不能正常添加。 后来还有点问题是由于传送过来的json数组造成的 传过来的json数组为[{"name":"上地网点","id","1"},] 提示opt.text = departs[i].name;  为空或不是对象,后来在后台处理的时候把最后那个“,”去掉,后来就一切正常了
  相关解决方案