Events bei einer ImageMap

FlorianR

Erfahrenes Mitglied
Hallo Zusammen,

ich habe ein kleines Problem mit meinem Javascript. Ich habe eine recht umfangreiche ImageMap auf einem Bild. Bei einem klick auf einen Punkt, soll ein "Div" an der Stelle erzeugt werden, wo der "Klick" stattgefunden hat. Ich könnte natürlich die Koordinate der imagemap in meine Funktion übergeben, aber das ist mir zu lästig - vorallem wenn sich die Punkte verschieben. Also würde ich es gerne mit einem Event lösen. Beim Internetexpolorer klappt es auch so weit (ein Wunder ist geschenen). Ähm nein, aber der Internetexplorer kann mit "window.event" umgehen - der Firefox nicht (dafür gibt es ja - wie unten schon versucht event.pageX und event.pageY, wobei event eigentlich die Variable ist, die übergeben werden müsste). Allerdings habe ich nun keinen blassen Schimmer, wie ich es umsetzen soll.

Hier mein Quellcode:

PHP:
Imagemap Auszug:
 <area shape="circle" coords="494,445,8" href="#1" id="1" onclick="openLayer('1')"/>

Code:


	var infoBox = document.getElementById('infoBox');
	var objWindow;
	
	//XMLHttpRequest Objekt aufbauen
	var http = null;
	if (window.XMLHttpRequest) {
		http = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		http = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	function openLayer(intid,e){
		var x = document.all ? window.event.clientX : e.pageX;
        var y = document.all ? window.event.clientY : e.pageY;
		
		if(document.getElementById(intid)){
		    objWindow = document.getElementById(intid);
			infoBox.innerHTML = "";
			objWindow = document.createElement("div");
		}else{
			objWindow = document.createElement("div");
		}
		
		objWindow.id = intid;
		objWindow.style.marginLeft = x+"px";
		objWindow.style.marginTop = y+"px";
		infoBox.appendChild(objWindow);
		infoBox.style.display = "block";
		
		function datenAusgeben(){
			if (http.readyState == 4)  {
				objWindow.innerHTML += http.responseText;
			}
		}
		http.open("GET", "kartenAusgabe.asp?id=" + intid);
		http.onreadystatechange = datenAusgeben;
		http.send("id="+intid);
	}
	
	function closeWindow(){
		infoBox.innerHTML = "";
		infoBox.style.display = "none";
	}

Ich hoffe ihr könnt mir weiterhelfen!

Danke im Voraus!

Grüße,
Florian
 
Zurück