nappy_hh: Onload-Trigger: Links zu Bookmarks?

Beitrag lesen

Hi folks,

kann es sein, dass ein Sprung zu einem Bookmark innerhalb der selben htm-Datei den Onload-Handler gar nicht auslöst?
Merkwürdig dabei: wenn ich die Eigenschaften der "neuen" Datei aufrufe, steht dort das Bookmark im Pfad ... aber der Onload-Handler tut nichts ...

Habe ein Workaround gefunden:

  
window.onload = bodyanpassen;  
  
function bodyanpassen ()  
{  
   if (document.all)  
   {  
// Aktuelle Dokument-URL parsen fuer Vergleiche mit Link-Angaben  
      var adresse = document.URL;  
      var hatmarke = adresse.split("#");  
      var gesamtpfad = hatmarke[0].split("chm::");  
      var pfadinchm = gesamtpfad[1];  
      var pfad = hatmarke[0].split("/");  
      var anzahlelemente = pfad.length;  
      var letzteselement = anzahlelemente - 1;  
      var datei = pfad[letzteselement];  
  
// Initialisierungen  
      var aadresse = "";  
      var apfad = "";  
      var aletzteselement = 0;  
      var adatei = "";  
      var linktext = "";  
  
      var anzahllinks = document.links.length;  
      for (var zaehler=0;zaehler<anzahllinks;zaehler++)  
      {  
// Link parsen fuer mehr Information  
         aadresse = document.links[zaehler] + "";  
         ahatmarke = aadresse.split("#");  
         apfad = ahatmarke[0].split("/");  
         aletzteselement = apfad.length - 1;  
         adatei = apfad[aletzteselement];  
   // enthaelt der Link ein Bookmark?  
         if (ahatmarke[1] != "")  
         {  
      // liegt der bookmark in diesem dokument?  
            if (datei == adatei)  
            {  
         // href ersetzen  
               linktext = document.links[zaehler].innerHTML;  
               zielneu = pfadinchm + document.links[zaehler].hash;  
               neuertext = "javascript:void(window.location.href = '" + zielneu + "');location.reload();";  
               document.links[zaehler].href = neuertext;  
            }  
         }  
      }  
   }  
}  

Dieser Teil des Scripts sorgt dafür, dass Links, die im selben Dokument auf einen Anker springen sollen, den onload-Handler auch triggern. Funktioniert gut. Links, die kein Bookmark anspringen bleiben unberührt, genauso wie links, die einen Bookmark in einer anderen Datei anspringen.

Wie ihr seht, habe ich das Ganze für eine .chm-Hilfe gebaut. Der Code muss also bequemerweise auch nur für den IE passen.