日期:2014-05-16  浏览次数:20354 次

关于innerHTML在 IE下失效的问题,谢谢
JS:
function VerifyUsernameState(values) {

  $I("username_info").innerHTML = cue[0][8];
  if (CheckTxtAJAX("username") != "0") {
  return 6;
  }
  return 0;
}


上面的$I("username_info").innerHTML = cue[0][8];
为什么会在IE下不起作用,在FIREFOX正常,,谁知道咋回事呢? 谢谢

------解决方案--------------------
把$I("username_info").innerHTML = cue[0][8];换成$I("username_info").innerHTML = "aaa";再分析一下。
------解决方案--------------------
alert(cue[0][8]);//看看能弹出什么,如果什么都没有,说明cue[0][8]不包含任何字符!

$I()是一个获取对象的函数?还是其他什么?如果是一个原生方法就有innerHTML,否则像JQ是不具有该属性的,需要转化为普通DOM对象才具有。

------解决方案--------------------
试一试啊。。一层层的查问题。。挨个试试
------解决方案--------------------
如果放页面最底部可以运行,那么最可能的是加载顺序的问题

你放在window.onload事件中调用或者把调用js函数的代码放页面最后面
------解决方案--------------------
你也试过$I("username_info").innerHTML = cue[0][8];这句话本身没有错误,那八成错误应该在CheckTxtAJAX里面了。
关于xmlhttp.responseText,你刚刚send,这个值肯定应该为空。
感觉一般都是在xmlhttp.onreadystatechange指向的函数里面处理返回回来的xml。
------解决方案--------------------
探讨

luxu001207
你说的可能是对的,IE就不按照常理出牌,FIREFOX里都正常,,但是你说调整位置 这个恐怕我得把所有代码都改了,,,因为这JS文件里 是对整个页面的表单进行效验的,已经形成了一个顺序结构了,现在情况不允许单独把这一个函数移动位置。

------解决方案--------------------
哦,你的ajax代码没有判断状态...
你直接加个状态判断,如果成功返回结果你再执行后便的代码即可,改动应该不会太大啊!
------解决方案--------------------
对象还没生成,你就调用,肯定是要出错的
------解决方案--------------------
上面的$I("username_info").innerHTML = cue[0][8];

取出cue集合索引是0的第8个属性的值是吧这个在IE 和FF是兼容是肯定没问题的
看上面的原因感觉应该是加载的问题吧,如果你在页面加载完后就可以取出数据,那就结了
放在 $(function(){
这里面来,试试看。
});

------解决方案--------------------
在IE报错,并不代表FF不报错,因为FF出错误了,你根本就看不出来,除非你调试, 有必要的话加几个try{}吧,这样就算出错了,后面的程序还是会执行,有可能就达到效果了,介绍一个个调试值,看是不是空值或者判断造成的。
------解决方案--------------------
调试一下,找到错误的代码。错误原因!

楼主你贴的代码,我们是看不出问题的!
------解决方案--------------------
不可能!ie跟FF(innerHTML)都支持。