• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

ajax menü funktioniert das im ie nicht?

saibonaut

New member
ich habe versucht ein ajax menü zu bauen. im firefox funktioniert es. aber im ie ist bei mir gar nichts sichtbar und es erscheint ein fehler: in zeile 17 zeichen 6 "Zugriff verweigter"

Code:
receiveReq.open("POST", 'hauptmenue.html', true);

ich kenne mich noch nicht besonders mit ajax aus, von daher kann ich mit der fehlermeldung nichts anfangen.

der gesamte code:

Code:
<html>
<head>
   
<link rel="stylesheet" type="text/css" href="CSS/css.css">
  
		<script language="JavaScript" type="text/javascript">
			
			<!--globale Variablen  -->
			
			var anzahl_elemente_haupt;  <!--hauptmenü -->
			var anzahl_elemente_unter;
			
			
			
			function getXmlHttpRequestObject() 
			{
				if (window.XMLHttpRequest) 
				{
					return new XMLHttpRequest(); //Not IE
				} 
				else if(window.ActiveXObject) 
				{
					return new ActiveXObject("Microsoft.XMLHTTP"); //IE
				} 
				else 
				{
					alert("Your browser doesn't support the XmlHttpRequest object.  Better upgrade to Firefox.");
				}
			}			
	
			var receiveReq = getXmlHttpRequestObject();		

			function hauptmenue() 
			{
				if (receiveReq.readyState == 4 || receiveReq.readyState == 0) 
				{
					receiveReq.open("POST", 'hauptmenue.html', true);
					receiveReq.onreadystatechange = handlehauptmenue; 
					receiveReq.send(null);
				}			
			}
			
			function handlehauptmenue() 
			{
				if (receiveReq.readyState == 4) 
				{
					var textinhalt = receiveReq.responseText;				
					var texttrenner = textinhalt.split(" ");					
					elemente = texttrenner.length;
					
					anzahl_elemente_haupt = elemente;
					
					
					for (j=0; j<=elemente; j++)
					{
					
				
				  document.getElementById('div_zurueck' + j).innerHTML = "<a href=\" javascript:untermenue" + j + "()\">" + texttrenner[j] + "</a>";
				
					}
				}
			}
			
			
			function untermenue0() 
			{
				for(k=0; k<=4; k++)   
				{
					document.getElementById('div_zurueck'+k).style.backgroundColor = "#999999"; 
				}
				document.getElementById('div_zurueck0').style.backgroundColor = "#EEEEEE"; 
			
				
				if (receiveReq.readyState == 4 || receiveReq.readyState == 0) 
				{
					receiveReq.open("POST", 'untermenue0.html', true);
					receiveReq.onreadystatechange = handleuntermenue0; 
					receiveReq.send(null);
				}			
			}
			
			function handleuntermenue0() 
			{
				if (receiveReq.readyState == 4) 
				{
					var textinhalt = receiveReq.responseText;				
					var texttrenner = textinhalt.split(" ");							
					elemente = texttrenner.length;
					
					anzahl_elemente_unter = elemente;
			      
					for (j=0; j<=elemente; j++)
					{
					    document.getElementById('div_zurueck_unter' + j).innerHTML = "<a href=\"index.html\" >"+texttrenner[j]+"</a>";
						
					}
				}
			}

			
			function untermenue1() 
			{
				for(k=0; k<=4; k++)   
				{
					document.getElementById('div_zurueck'+k).style.backgroundColor = "#999999"; 
				}
				document.getElementById('div_zurueck1').style.backgroundColor = "#EEEEEE"; 
			
				
				if (receiveReq.readyState == 4 || receiveReq.readyState == 0) 
				{
					receiveReq.open("POST", 'untermenue1.html', true);
					receiveReq.onreadystatechange = handleuntermenue1; 
					receiveReq.send(null);
				}			
			}
			
			function handleuntermenue1() 
			{
				if (receiveReq.readyState == 4) 
				{
					var textinhalt = receiveReq.responseText;				
					var texttrenner = textinhalt.split(" ");							
					elemente = texttrenner.length;
			
					for (j=0; j<=elemente; j++)
					{
					    document.getElementById('div_zurueck_unter' + j).innerHTML = "<a href=\"index.html\" >"+texttrenner[j]+"</a>"; 
					}
				}
			}		
			
				function untermenue2() 
			{
				for(k=0; k<=4; k++)   
				{
					document.getElementById('div_zurueck'+k).style.backgroundColor = "#999999"; 
				}
				document.getElementById('div_zurueck2').style.backgroundColor = "#EEEEEE"; 
			
				
				if (receiveReq.readyState == 4 || receiveReq.readyState == 0) 
				{
					receiveReq.open("POST", 'untermenue2.html', true);
					receiveReq.onreadystatechange = handleuntermenue1; 
					receiveReq.send(null);
				}			
			}
			
			function handleuntermenue2() 
			{
				if (receiveReq.readyState == 4) 
				{
					var textinhalt = receiveReq.responseText;				
					var texttrenner = textinhalt.split(" ");							
					elemente = texttrenner.length;
			
					for (j=0; j<=elemente; j++)
					{
					    document.getElementById('div_zurueck_unter' + j).innerHTML = "<a href=\"index.html\" >"+texttrenner[j]+"</a>"; 
					}
				}
			}		
			
			
			<!--weitere Untermenüs -->

			function textteil00() 
			{
				if (receiveReq.readyState == 4 || receiveReq.readyState == 0) 
				{
					receiveReq.open("POST", 'testtext.html', true);
					receiveReq.onreadystatechange = handleuntermenue1; 
					receiveReq.send(null);
				}			
			}
			
			function handletextteil00() 
			{
				if (receiveReq.readyState == 4) 
				{
					var textinhalt = receiveReq.responseText;				
					
				    document.getElementById('textteil').innerHTML = "+textinhalt+"; 
				
				}
			}					
			
			</script>
            
  
	</head>
	<body onload="hauptmenue(); untermenue0()">
    

<div id="kopfteil"><p align="right" style="padding:10px;">
<img src="Bilder/kopf/neuladen.jpg">
<img src="Bilder/kopf/drucken.jpg">
<img src="Bilder/kopf/speichern_aktiv.jpg">
<img src="Bilder/kopf/info.jpg">
<img src="Bilder/kopf/suchen.jpg">
<img src="Bilder/kopf/ende.jpg"></p>
</div>
        
<div id="hauptmenue">
<div id="div_zurueck0" style="display:inline"></div>
<div id="div_zurueck1" style="display:inline"></div>
<div id="div_zurueck2" style="display:inline"></div>
<div id="div_zurueck3" style="display:inline"></div>
<div id="div_zurueck4" style="display:inline"></div>
</div>

	<div id="untermenue" >
<div id="div_zurueck_unter0" style="display:inline"></div>
<div id="div_zurueck_unter1" style="display:inline"></div>
<div id="div_zurueck_unter2" style="display:inline"></div>
<div id="div_zurueck_unter3" style="display:inline"></div>
<div id="div_zurueck_unter4" style="display:inline"></div>


</div>

<div id="textteil">

</div>

        
        
	</body>
</html>
 
In Zeile 17 steht: if (window.XMLHttpRequest) die sollte zu gar nichts führen, auf keinen Fall zu einer Fehlermeldung.
Ausserdem solltest du dir mal anschauen wie Kommentare in JS aussehen.
 
sry ich meinte zeile 37 mit dem fehler.


Code:
receiveReq.open("POST", 'hauptmenue.html', true);


vielleicht hängt es auch mit dem fehler im firefox zusammen der noch erscheint:

Code:
document.getElementById("div_zurueck" + j) has no properties
document.getElementById('div_zurueck' + j).innerHTML = "<a href=\" javascr...
 
Zuletzt bearbeitet:
Wenn die Zeile 37 exakt so da steht, dann kann die Fehlermeldung nicht von dieser Zeile stammen.
 
Zuletzt bearbeitet:
ja genau
Code:
function hauptmenue() 
			{
				if (receiveReq.readyState == 4 || receiveReq.readyState == 0) 
				{
			[SIZE="3"][COLOR="Black"][B]		receiveReq.open("POST", 'hauptmenue.html', true);[/B][/COLOR][/SIZE]
					receiveReq.onreadystatechange = handlehauptmenue; 
					receiveReq.send(null);
				}			
			}
 
ach, ich hatte mir deinen Code gar nicht genauer angeschaut, da die Fehlermeldung auf ein anderes Problme hindeutete, aber ich vermute jetzt eher, dass du vermutlich nicht ein open() auf ein Request Objekt machen kannst, das noch auf die Antwort wartet, d.h. du kannst nicht zwei parallele Abfragen mit nur einem Objekt durchführen, wie du schon anfänglich vermutet hast.
 
ok als ajax anfänger bin ich jetzt erst mal überfragt?

ich dachte diese abfrage in zeile 37 ist die erste die ich mache? der fehler müsste doch dann bei der nächsten abfrage kommen???

könntest du das ein bisschen genauer erleutern, auch so in richtung lösungsvorschlag?
 
Zurück
Oben