Heiner Lamprecht: JS abhängig vom Doctype?

Beitrag lesen

Hallo zusammen,

ich entwickle zur Zeit eine Web-Applikation, bei der ich per JavaScript ein kleines Icon (id="marker") verschieben möchte.  Dazu gibt es zwei JS-Funktionen:

-------------------------------------------------------------------
function MarkItem(xPos, yPos)
{
  document.getElementById("marker").style.marginLeft = xPos - 5;
  document.getElementById("marker").style.marginTop = yPos - 5;
  document.getElementById("marker").style.display = "block";
}

function HideMarker()
{
  document.getElementById("marker").style.display = "none";
}
-------------------------------------------------------------------

Auf der Seite gibt es ferner eine Reihe von Links wie diesen hier:

-------------------------------------------------------------------
<a href="#"
  onmouseover="this.blur(); MarkItem(62,80); return false;"
  onmouseout="this.blur(); HideMarker(); return false;">Item</a>
-------------------------------------------------------------------

Soweit, so gut.  In allen Browsern, die ich zum Testen (Konqueror, Firefox, Opera und IE) nehme, klappt es wunderbar.  Aber nur, solange die Webseite _nicht_ mit der Angabe über den Doctype (XHTML 1.0 Strict bzw. Transitional) beginnt.  In diesem Fall ist nur noch der IE in bereit, das Icon zu positionieren.  Die anderen führen die Funktion aus und blenden das Icon auch ein bzw. aus, aber nur an der Position, die es beim Aufbau der Seite hat.

Zum einen verstehe ich nicht, warum das der Fall ist?  Zum anderen möchte ich gerne wissen, ob es eine andere Möglichkeit gibt, trotz der Doctype-Angabe ein korrektes Verhalten in den anderen Browsers zu erreichen?

Heiner