`

后台数据返回值在IE里显示不了,但是在firefox里显示没问题

阅读更多
下面是我程序中的一段代码:在IE里显示不了,但是在firefox里显示没问题.
<script language=JavaScript type=text/javascript src=js/prototype.js></script>
<script language=JavaScript type=text/javascript>
function show(){
                     var one = new Ajax.Request(
                            'menu.do?action=dy',
                            {
                                   method: 'get',
                                   onComplete:list
                            }
              );
              
              }
function list(response){
             $('show').innerHTML=response.responseText;//只有Firefox显示正常,IE没显示.
             $('test').innerHTML=response.responseText;//IE和Firefox显示都没问题
                     
              }
</script>
<body onload=show()>
<select id="show" ><option value=''>--------</option></select>
<div id=test></div>
</body>

后台数据返回值:
<option value=>--请选择--</option>
<option value=1>Electronics</option>
<option value=2>Books</option>
<option value=3>Home & Garden</option>
<option value=69>sdf</option>

这是什么原因呢?请高手们指教,谢谢!
分享到:
评论
9 楼 goby2008 2007-06-13  
我已把这个问题解决了,现在把一个实例发表出来,大家分享一下。
8 楼 goby2008 2007-06-12  
这个我明白的,我对javascript认识一般,深入编写还需学习,也是想通过实践来学习,平常也查看相关的javascript书籍,但书本的东西,很多时候和实际还是有点差距,所以实践起来,的确有点困难,有时候为了一个小问题,花的时间就不少,所以就想来论坛这里,希望各位能够指点一二.
我现在写的这些程序都是为整理自己的资料而编写一个资源库系统,以前是以SSH框架做的,现在只想加上ajax技术,学习当中,有所得罪,望大家见谅!
7 楼 dennis_zane 2007-06-12  
goby2008 写道
谢谢你的教诲,我会努力学习的啦!现在我对ajax,都是在尝试编写阶段,都是一种探索的过程,在这个过程中,能够得到大家的支持,非常感谢!

你这样说我很惭愧,我只是觉的google baidu可以解决的问题就不要发到论坛来浪费大家时间。从你问的问题来看,你对ajax一开始就框架之类不是很好,最好还是找份资料从基础看起,同时深入学习下javascript
6 楼 goby2008 2007-06-12  
谢谢你的教诲,我会努力学习的啦!现在我对ajax,都是在尝试编写阶段,都是一种探索的过程,在这个过程中,能够得到大家的支持,非常感谢!
5 楼 dennis_zane 2007-06-12  

baidu google就可以解决的问题,为什么还在这问?已经提示的够清楚了,而且你也没搞明白ajax是怎么回事,找份资料看下不是更好?
PrintWriter out=response.getWriter();
out.write(sb.toString());
return null;  
4 楼 goby2008 2007-06-11  
我的struts中都已经设置为xml返回前台
if(action.equalsIgnoreCase("dy")){
			List l = this.menuService.getTreeView(new ArrayList());
			StringBuffer sb = new StringBuffer();
			response.setCharacterEncoding("UTF-8");
			response.setContentType("text/xml; charset=UTF-8"); 
			response.setHeader("Cache-Control", "no-cache"); 
			sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
			sb.append("<Menu>");
			for(int i=0;i<l.size();i++){
				Menu m = (Menu)l.get(i);
				sb.append("<One>");
				sb.append("<MenuName>"+m.getMenuName()+"</MenuName>");
				sb.append("<OneID>"+m.getId()+"</OneID>");
				sb.append("</One>");
			}
			sb.append("</Menu>");
			System.out.println(sb.toString());
			request.getSession().setAttribute("dy", sb.toString());
			return mapping.findForward("dylist");
		}

我用dylist.jsp输出返回的数据:
<%
 String s=(String)request.getSession().getAttribute("dy");
//* if(s.equals(""))
 //out.println("<option value=>暂无数据</option>");
// else
 //out.println("<option value=>--请选择--</option>");
 out.println(s);
 %>

结果为:
  <?xml version="1.0" encoding="UTF-8" ?> 
- <Menu>
- <One>
  <MenuName>Electronics</MenuName> 
  <OneID>1</OneID> 
  </One>
- <One>
  <MenuName>Books</MenuName> 
  <OneID>2</OneID> 
  </One>
- <One>
  <MenuName>HomeGarde</MenuName> 
  <OneID>3</OneID> 
  </One>
- <One>
  <MenuName>sdf</MenuName> 
  <OneID>69</OneID> 
  </One>
- <One>
  <MenuName>中国</MenuName> 
  <OneID>70</OneID> 
  </One>
  </Menu>

但是那个ajax.request返回时,总不能作为responseXML读取,只能以responseText,应该如何处理呢?
因为我想把这段XmL进行处理,现在变成了responseText,请大家指教,看看我这个程序问题出现在那里呢?谢谢!
3 楼 dennis_zane 2007-06-11  
responseXML返回的是一个xml dom对象,使用dom api操纵就可以了。
servlet或者action输出xml的时候,设置下ContentType
response.setContentType("text/xml;charset=gb2312")

如果非要用现在的responseText,可以将返回的字符串包装成xml DOM对象,参考下这个:
http://www.blogjava.net/killme2008/archive/2007/03/09/102748.html
2 楼 goby2008 2007-06-10  
我有一个问题就是prototype框架,它的ajax.request返回的的值
都是response.responseText,是一串字符,而不是xml,应该如何读取它呢?我后台数据返回的xml代码:
  <?xml version="1.0" encoding="UTF-8" ?> 
- <Menu>
- <One>
  <MenuName>Electronics</MenuName> 
  <OneID>1</OneID> 
  </One>
- <One>
  <MenuName>Books</MenuName> 
  <OneID>2</OneID> 
  </One>
- <One>
  <MenuName>HomeGarden</MenuName> 
  <OneID>3</OneID> 
  </One>
- <One>
  <MenuName>abc</MenuName> 
  <OneID>13</OneID> 
  </One>
  </Menu>

我想把这段xml,放在这个段代码里.
<select id="one" >
    		<option value="">--------</option>
    	</select>

我尝试读取这段xml,但不成功,应该如何写呢?请指教,谢谢!
1 楼 dennis_zane 2007-06-09  
select的innerHTML在IE里有bug,会去掉第一个<option>,还是传回xml,自己解析创建吧

相关推荐

Global site tag (gtag.js) - Google Analytics