Gonzo: Anker

Beitrag lesen

Aus diesen Grund habe ich die Karte in ein overlow:scroll verpackt.
Jetzt soll es aber so sein, das man über Links sich zu den verschiedenen Punkten auf der Karte bringen lassen kann.

Du kannst in einer Javascript-Funktion die URL-Parameter abfragen, entweder über location.search oder über document.URL.

function nummer1() {
  var oMyImage=document.getElementById("bild");
  oMyImage.scrollTop="250";
  oMyImage.scrollLeft="200";

Wenn ich den Link auf der selben Seite stehen hätte würde dieser einfach

<a href="#" onclick="return nummer1()">Nummer 1</a>

lauten. Wie soll ich das denn jetzt anstellen, wenn der Link auf einer
anderen Seite stehen soll.

Zusammen mit <body onLoad="kartenanzeige()"> und der URL karte.html?x=12;y=34 in etwa so:

function kartenanzeige() {
  var p = location.search; // IE hat(te) IIRC Probleme mit direkter .search-Verwendung, daher die eigentlich unnötige Übertragung in eine weitere Variable.
  var xy = p.match(/[?;&]x=([0-9]+)[;&]y=([0-9]+)([;&]|$)/);
  if (xy) {
    /* Hier fehlt eine Prüfung, ob x und y im akzeptablen Bereich liegen. */
    /* Hier würde es sich weiterhin anbieten, nicht einen Punkt links oben zu
       benutzen, sondern die Koordinate in den Mittelpunkt des <div>s zu
       setzen. Die Koordiaten wären damit nicht mehr abhängig von einer
       bestimmten <div>-Größe.
    */
    var oMyImage = document.getElementById("bild");
    oMyImage.scrollTop = xy[1];
    oMyImage.scrollLeft = xy[2];
  }
}