slafochmed: AJAX responseText in IE -- merkwürdig

Beitrag lesen

Hallo zusammen. Ich benötige Hilfe bei einem sehr merkwürdigem Verhalten von IE 7 bei AJAX Responses.

Mein Problem:
Ein kleines Menü auf meiner Homepage testet AJAX mit PHP und Perl.
http://http://isonthenet.de/menuselect/menuselect_ajax.htm

Dies funktioniert einwandfrei in Firefox 2.
In IE 7 kommt es zu dem merkwürdigen Inhalten der Variable "importdat".
Bitte die drei Zeilen beachten, wenn diese Variable in das HTML geschrieben wird. Kurz vorher und nachher. Ist das nicht seltsam?
Wenn ich die beiden Alerts weglasse, kommt im IE 7 "data not available".

Siehe Source:

  
<html>  
 <head>  
  
<!-- Style access for IE -->  
   <script src="./scriptaculous/lib/prototype.js" type="text/javascript"></script>  
   <script src="./scriptaculous/src/scriptaculous.js" type="text/javascript"></script>  
  
<script type="text/javascript">  
  
//menuselect  
var usualbg = '\#91A2B8';  
var overbg  = '\#ABBED6';  
var activebg = '\#AFCFD6';  
var menuitems = 3;  
  
function loadselect(but){  
  
  idstring = 'menu'+but;  
  Element.setStyle(idstring, {backgroundColor:activebg} );  
  
  for (i=1;i<=menuitems;i++){  
   idstring = 'menu'+i;  
   y = document.getElementById(idstring);  
  
   if (i == but){y.setAttribute('onmouseout', 'Element.setStyle(this, {backgroundColor:activebg});');}  
   else {  
    Element.setStyle(idstring, {backgroundColor:usualbg} );  
    y.setAttribute('onmouseout', 'Element.setStyle(this, {backgroundColor:usualbg});');  
   }  
  
  }  
  
  
  z = document.getElementById("loadselect");  
  
  switch (but) {  
  case 1:  
    content="./content0.cgi?menu="+but;  
    break;  
  case 2:  
    content="content1.php?menu="+but;  
    break;  
  case 3:  
    content="content0.cgi?menu="+but;  
    break;  
  default:  
    content='Content error, check code.';  
    break;  
 }  
  
 // Ajax HttpRequest for getting script data  
  
 dataSource = content;  
  
  
      importdat = '';  
   var XMLHttpRequestObject2 = false;  
   try {  
          XMLHttpRequestObject2 = new ActiveXObject('MSXML2.XMLHTTP');  
      } catch (exception1) {  
          try {  
              XMLHttpRequestObject2 = new ActiveXObject('Microsoft.XMLHTTP');  
          } catch (exception2) {  
              XMLHttpRequestObject2 = false;  
  
          }  
      }  
  
      if (!XMLHttpRequestObject2 && window.XMLHttpRequest) {  
        XMLHttpRequestObject2 = new XMLHttpRequest();  
      }  
       if(XMLHttpRequestObject2) {  
         XMLHttpRequestObject2.open('GET', dataSource);  
      XMLHttpRequestObject2.onreadystatechange = function()  
          {  
           if (XMLHttpRequestObject2.readyState == 4 &&  
              XMLHttpRequestObject2.status == 200) {  
  
                importdat = XMLHttpRequestObject2.responseText;  
  
            }  
           else {importdat = 'data not available';}  
          }  
          XMLHttpRequestObject2.send(null);  
        }  
 alert(importdat);  
 z.innerHTML = importdat;  
 alert(importdat);  
  
  
  
}  
  
  
</script>  
  
  
 </head>  
 <body>  
  
  
  
 <table align="center" border="1" height="300px" style="border-collapse:collapse;text-align:center;font-face:verdana;font-weight:bold;font-size:12px;">  
  <tr height="40px">  
   <script type="text/javascript">  
    for (i=1;i<=menuitems;i++){  
      document.write('<td width="50px" id="menu'+i+'" onclick="loadselect('+i+');" style="border:thin solid black; cursor:pointer;background-color:'+usualbg+';" onmouseover="Element.setStyle(this, {backgroundColor:overbg} );" onmouseout="Element.setStyle(this, {backgroundColor:usualbg} );">'+i+'</td>');  
    }  
   </script>  
  
  </tr>  
  <tr>  
   <td colspan=4 id="loadselect"></td>  
  
  </tr>  
  
 </table>  
  
 </body>  
</html>