leinad: Läuft im Fox aber net IE

Erstmal servus, hab da ein Problem was mich langsam zur Verzweifelung bringt! Ich habe eine Seite erstellt die aus einem Bild besteht. Dieses Bild ist durch geschachtelte Tabellen in einzelne Bereiche unterteilt. Bei einem MouseOver soll sich nun ein Container öffnen der Inhalte aus einer XML empfängt. Dieser Container soll in einem bestimmten Abstand neben der aktuellen Mauszeigerposition erscheinen. Die Position de Zeigers wird quasi die ganze Zeit beobachtet und das Panel wird immer neu erzeugt. Im Firefox läuft es alles wunderbar aber sobald ich es im IE laufen lassen wird das Panel unter dem Bild und nicht "darüber" erstellt! Das ganze versuch ich mit Ajax hinzu basteln. Als Vorlage der JScript Datei habe ich eine Bericht in der CT genommen. Bin echt Hilflos da ich schon ,wie ich meine, alles ausprobiert hab.

Hier mal der Quelltext vielleicht bemerkt ja einer von euch den Fehler:

JS: var spans = document.getElementsByTagName("span");

function init(){

if (!spans)    return false;  for (var i = 0; i < spans.length; i++) {     var span = parseInt(spans[i].getAttribute('id'));     if (span != null && !isNaN(span)) {       spans[i].onmousemove = new Function("ereignis","komSt.position_ermitteln(ereignis);anzeigen("+span+");");     }   } }

function anzeigen(nr){  // erzeugt das popup und holt die Inhalte  this.schliessen(nr);  document.getElementsByTagName("body")[0].appendChild(komSt.erzeugen(nr));  for (var i = 0; i < spans.length; i++) {     var span = spans[i].getAttribute('id');     if(span == nr){      spans[i].firstChild.style.backgroundColor = "#FFFF00";      komSt.fussnotenueber.nodeValue = spans[i].firstChild.name;     }  }  komSt.holen(nr); }

function schliessen(nr){  for (var i = 0; i < spans.length; i++) {     var span = spans[i].getAttribute('id');     if(span == nr){      spans[i].firstChild.style.backgroundColor = "#FFFFFF";     }   }  komSt.stopp();  if(komSt.panel){   komSt.schliessen();  } }

// PopUp Objekt var komSt = {  // Die Fußnote soll von außen zugänglich sein:  panel: null,  // DIV-panel  fussnotenvorspann: null, // Überschrift-Vorspann  fussnotenueber: null,  // Überschriftentext  fussnotenabsatz: null,  // Absatz für Fussnotentext  ajax: false,   // XMLHttpRequest-Objekt  mausX: 0,   // horizontale und ...  mausY: 0,   // vertikale Mausposition  div_breite: 300,  // Breite und ...  div_hoehe: 130,   // Höhe  abstandX: 10,   // horizontaler und ...  abstandY: 5,   // vertikaler Abstand von Mauszeiger  rollX: 0,   // horizontale und ...  rollY: 0,   // vertikale Scrollposition

erzeugen: function(nr) {   //  wird bei jedem Aufruf neu erzeugt.

komSt.panel = document.createElement("div");   komSt.panel.id = "leitstand";   komSt.panel.style.width = komSt.div_breite + "px";   komSt.panel.style.height = komSt.div_hoehe + "px";

var pos_x = (komSt.div_breite + komSt.abstandX > window.innerWidth)?        1:       komSt.mausX + komSt.abstandX; // rechts von Mauszeiger

var pos_y = (komSt.div_hoehe + komSt.abstandY > komSt.mausY)?     1 :  //maximaler abstand zmausXum oberen Fensterrand     komSt.mausY - komSt.div_hoehe - komSt.abstandY; //über

komSt.panel.style.left = komSt.rollX + pos_x + "px";   komSt.panel.style.top = komSt.rollY + pos_y + "px";

// Überschrift komSt.fussnotenueber = document.createTextNode(document.getElementsByTagName("img")[0].name);

komSt.titel = document.createElement("p");   komSt.titel.setAttribute("class","klein");   komSt.titel.appendChild(komSt.fussnotenueber);

// Link zum Schliessen

komSt.fussnotenabsatz = document.createElement("p");   // zusammensetzen

komSt.panel.appendChild(komSt.titel);   komSt.panel.appendChild(komSt.fussnotenabsatz);   // Ereignis registrieren

komSt.anfasser = komSt.titel;   komSt.anfasser.onmousemove = komSt.ziehen_vorbereiten;   komSt.anfasser.style.cursor = "move";   // zurückgeben   return komSt.panel;  },

holen: function(nr) {   // Ajax-Verbindung herstellen   try {   // W3C-Standard    komSt.ajax = new XMLHttpRequest();   } catch(w3c) {    try {   // Internet Explorer     komSt.ajax = new ActiveXObject("Msxml2.XMLHTTP");    } catch(msie) {     try {  // Internet Explorer alt      komSt.ajax = new ActiveXObject("Microsoft.XMLHTTP");     } catch(msie_alt) {      alert("Ihr Browser kann keine Kommissionierungsstellen anzeigen.");      return false; // !!! Link auf XML-Dokument     }    }   }   // Datei anfordern (asynchron)   komSt.ajax.open('GET', './data/leit.xml', true);   komSt.ajax.setRequestHeader('Content-Type', 'text/xml');   // umgeht Internet Explorers Caching von GET-Anfragen   komSt.ajax.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');   komSt.ajax.send(null);   // nach Status-Ãnderungen der Verbindung   // werden die empfangenen Inhalte geparst   komSt.ajax.onreadystatechange = function() {    // wenn Datei komplett empfangen ist ...    if (komSt.ajax.readyState == 4) {     // Dokument nicht gefunden (Code 0 für lokale Tests):     if (komSt.ajax.status != 200 && komSt.ajax.status != 0) {      komSt.fussnotenabsatz.firstChild.nodeValue = "Kommissionsierungsstellen-Datei konnte nicht gefunden werden!";      return false;     }

var kss = komSt.ajax.responseXML.getElementsByTagName("kostenstelle");     var passt = false     // Eine Schleife sucht nach der nummer     for(var i = 0; i < kss.length; i++) {      if (kss[i].getElementsByTagName("id")[0].firstChild.nodeValue == nr){       komSt.fussnotenabsatz.appendChild(document.createTextNode("Name: "));        komSt.fussnotenabsatz.appendChild(kss[i].getElementsByTagName("name")[0].cloneNode(true));        komSt.fussnotenabsatz.appendChild(document.createElement("br"));        komSt.fussnotenabsatz.appendChild(document.createTextNode("1.Zahl: "));        komSt.fussnotenabsatz.appendChild(kss[i].getElementsByTagName("zahl1")[0].cloneNode(true));        komSt.fussnotenabsatz.appendChild(document.createElement("br"));        komSt.fussnotenabsatz.appendChild(document.createTextNode("2.Zahl: "));        komSt.fussnotenabsatz.appendChild(kss[i].getElementsByTagName("zahl2")[0].cloneNode(true));        komSt.fussnotenabsatz.appendChild(document.createElement("br"));        komSt.fussnotenabsatz.appendChild(document.createTextNode("3.Zahl: "));        komSt.fussnotenabsatz.appendChild(kss[i].getElementsByTagName("zahl3")[0].cloneNode(true));

return true;

}     }     var net_da = document.createTextNode("Kommissionierungsstelle " + nr + " wurde nicht gefunden!");     komSt.fussnotenabsatz.appendChild(net_da);     return false;    }   }  },

schliessen: function() {   try{    document.getElementsByTagName("body")[0].removeChild(komSt.panel);    komSt.panel = null;   }catch(irgendwas){

}  },

ziehen_vorbereiten: function(ereignis) {

if (!ereignis) var ereignis = window.event;   komSt.position_ermitteln(ereignis);   document.onmousemove = komSt.ziehen;   document.onmouseup = komSt.stopp;  },

position_ermitteln: function(ereignis) {   // ermittelt die Position des Mauszeigers   // (Pixel von der linken oberen Fensterecke)   if (!ereignis) var ereignis = window.event;   komSt.mausX = ereignis.clientX;   komSt.mausY = ereignis.clientY;   komSt.roll();   // Safari rechnet clientX/Y vom Dokumentenanfang aus   if (komSt.mausX > komSt.rollX && komSt.rollX >= document.documentElement.clientX) komSt.mausX -= komSt.rollX;   if (komSt.mausY > komSt.rollY && komSt.rollX >= document.documentElement.clientY) komSt.mausY -= komSt.rollY;  },

roll: function() {   // Gibt die horizontale oder vertikale Scroll-Verschiebung zurück   if (isFinite(self.pageYOffset)) { // DOM    komSt.rollX = self.pageXOffset;    komSt.rollY = self.pageYOffset;   } else if (isFinite(document.documentElement && document.documentElement.scrollTop)) { // IE neu    komSt.rollX = document.documentElement.scrollLeft;    komSt.rollY = document.documentElement.scrollTop;   } else if (isFinite(document.body.scrollTop)) { // IE alt    komSt.rollX = document.body.scrollLeft;    komSt.rollY = document.body.scrollTop;   }  },

ziehen: function(ereignis) {   /   if (!ereignis) var ereignis = window.event;

document.onmousedown = komSt.stopp;   // 1.) aktuelle Position ermitteln   var kastenX = parseInt(komSt.panel.style.left.slice(0,-2));   var kastenY = parseInt(komSt.panel.style.top.slice(0,-2));   // 2.) alte Mausposition speichern   var mausX_alt = komSt.mausX;   var mausY_alt = komSt.mausY;   // 3.) neue Mausposition ermitteln   komSt.position_ermitteln(ereignis);   // 4.) um die Differenz verschieben   komSt.panel.style.left = kastenX + komSt.mausX - mausX_alt + "px";   komSt.panel.style.top = kastenY + komSt.mausY - mausY_alt + "px";  },

stopp: function() {

document.onmousemove = null;   document.onmouseup = null;

if (document.onmousedown) {

document.onmousedown = null;    komSt.anfasser.onmousedown = komSt.ziehen_vorbereiten;   }  }

};

function klonen(quelle, ziel) {  for(var i = 0; i < quelle.childNodes.length; i++) {   var knoten = quelle.childNodes[i];   switch (knoten.nodeType) {    case 1:     var neu = ziel.appendChild(document.createElement(knoten.nodeName));     for (var j = 0; j < knoten.attributes.length; j++) {      neu.setAttribute(knoten.attributes[j].nodeName, knoten.attributes[j].nodeValue);     }     klonen(knoten, neu);     break;    case 3:     subknoten = document.createTextNode(knoten.nodeValue);     ziel.appendChild(subknoten);   }  } }

window.onload = init;

Html: <html>   <head>    <!-- saved from url=(0013)about:internet -->  <script type="text/javascript" src="Style/popup.js"></script>  <link rel="stylesheet" type="text/css" href="Style/popup.css" />   </head>   <body>

<TABLE cellpadding="0" cellspacing="0"   border="0"  > <TR> <TD>  <TABLE cellpadding="0" cellspacing="0"   border="0" >   <TR>   <TD><IMG SRC="images/Buero/bue_1_2.jpg" WIDTH=154 HEIGHT=36></TD>   <TD><IMG SRC="images/Buero/bue_2_2.jpg" WIDTH=300 HEIGHT=36></TD>   <TD><IMG SRC="images/Buero/bue_3_2.jpg" WIDTH=146 HEIGHT=36></TD>   </TR>   <TR>   <TD><IMG SRC="images/Buero/bue_4_2.jpg" WIDTH=154 HEIGHT=235></TD>   <TD>   <TABLE cellpadding="0" cellspacing="0"   border="0" >    <TR>    <TD><span id="1" onMouseOut="javascript:schliessen('1');"><IMG name="eins" SRC="images/CD1/CD1_1_1.gif" WIDTH=36 HEIGHT=63></span></TD>    <TD><span id="2" onMouseOut="javascript:schliessen('2');"><IMG name="zwei" SRC="images/CD1/CD1_2_1.gif" WIDTH=17 HEIGHT=63></span></TD>    <TD><span id="3" onMouseOut="javascript:schliessen('3');"><IMG name="drei" SRC="images/CD1/CD1_3_1.gif" WIDTH=74 HEIGHT=63></span></TD>    <TD><span id="4" onMouseOut="javascript:schliessen('4');"><IMG name="vier" SRC="images/CD1/CD1_4_1.gif" WIDTH=38 HEIGHT=63></span></TD>    <TD><span id="5" onMouseOut="javascript:schliessen('5');"><IMG name="fünf" SRC="images/CD1/CD1_5_1.gif" WIDTH=95 HEIGHT=63></span></TD>    <TD><span id="6" onMouseOut="javascript:schliessen('6');"><IMG name="sechs" SRC="images/CD1/CD1_6_1.gif" WIDTH=40 HEIGHT=63></TD>    </TR>

.... usw

  1. hi,

    Bin echt Hilflos da ich schon ,wie ich meine, alles ausprobiert hab.

    Wenn dein "alles Ausprobieren" darin besteht, deinen Code hier abzuladen - dann kann dir vermutlich kaum jemand weiterhelfen.
    Es ist nicht mal ein rudimentärer Ansatz einer Fehleranalyse deinerseits zu erkennen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hello out there!

    Dieses Bild ist durch geschachtelte Tabellen in einzelne Bereiche unterteilt.

    Was soll dieser Unsinn?

    Du kennst <http://de.selfhtml.org/html/grafiken/verweis_sensitive.htm@title=verweis-sensitive Grafiken (Image Maps)>?

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)