Uncle Sam: laufende Uhr / Goolge Maps

Hallo,

auf meiner Seite habe ich eine mitlaufnede Uhr geschrieben, genau die von http://de.selfhtml.org/dhtml/beispiele/datumuhr.htm. Nun habe ich nachträglich google maps mit eingebunden und ide Uhr funktioniert nicht mehr.

Der "Fehler" im Befehl "body", denn bei hier muss man diese Sachen rein schreiben: onload="initialize()" onunload="GUnload()". Und dadurch funk. die Uhr nicht mehr. Kann mir einer helfen?

Mfg Uncle Sam

Quelltext (Auszüge):

...
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjs6oK4vgUjOL3dWNENDSPBRxyN3fkA6OSsqIGdxvWC6FVoIcnBRWnODK7crHRhtxPfUtYXziXB9acA" type="text/javascript"></script>
<script type="text/javascript">
    function initialize() {
    if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"))
    map.setCenter(new GLatLng(53.481584885942446,9.15935754776001), 15);
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
map.addOverlay(new GMarker(new GLatLng(53.481584885942446,9.15935754776001)))
  }
}
</script>

<script type="text/javascript" src="js/dhtml.js"></script>
<script type="text/javascript">
function ZeitAnzeigen () {
  var Wochentagname = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch",
                                "Donnerstag", "Freitag", "Samstag");
  var Jetzt = new Date();
  var Tag = Jetzt.getDate();
  var Monat = Jetzt.getMonth() + 1;
  var Jahr = Jetzt.getYear();
  if (Jahr < 999)
    Jahr += 1900;
  var Stunden = Jetzt.getHours();
  var Minuten = Jetzt.getMinutes();
  var Sekunden = Jetzt.getSeconds();
  var WoTag = Jetzt.getDay();
  var Vortag = (Tag < 10) ? "0" : "";
  var Vormon = (Monat < 10) ? ".0" : ".";
  var Vorstd = (Stunden < 10) ? "0" : "";
  var Vormin = (Minuten < 10) ? ":0" : ":";
  var Vorsek = (Sekunden < 10) ? ":0" : ":";
  var Datum = Vortag + Tag + Vormon + Monat + "." + Jahr;
  var Uhrzeit = Vorstd + Stunden + Vormin + Minuten + Vorsek + Sekunden;
  var Gesamt = Wochentagname[WoTag] + ", " + Datum + ", " + Uhrzeit;

if (DHTML) {
    if (NS4) {
      setContent("id", "Uhr", null, '<span class="Uhr">' + Gesamt + "</span>");
    } else {
      setContent("id", "Uhr", null, Gesamt);
    }
    window.setTimeout("ZeitAnzeigen()", 1000);
  }
}

</script>

...

<body onload="initialize()" onunload="GUnload()">

<div id="boxtext1">
&nbsp;&nbsp;&nbsp;&nbsp;<img src="images/down.gif" width="14" height="10" />&nbsp;<a href="#Kontakt">Kontakt/Impressum</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<img src="images/down.gif" width="14" height="10" />&nbsp;<a href="#Anfahrt">Anfahrt</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;<img src="images/down.gif" width="14" height="10" />&nbsp;<a href="#Disclaimer">Haftungsausschluss/Disclaimer</a><br /><p>

...

<a href="#top"><img src="images/up.gif" width="14" height="10" border="0" title="nach oben" /></a>
&nbsp;<span style="font-weight:bold; font-size:16px"><a name="Anfahrt">Anfahrt</a></span><p>
<div id="map_canvas" style="width:100%; height:300px"></div><p>

...

</div>

...

<body onload="window.setTimeout('ZeitAnzeigen()', 1000)">
  <div id="Uhr" class="Uhr">&nbsp;</div>

</body>
</html>

  1. <script type="text/javascript" src="js/dhtml.js"></script>
    <script type="text/javascript">
    function ZeitAnzeigen () {

    [...]

    if (DHTML) {
        if (NS4) {
          setContent("id", "Uhr", null, '<span class="Uhr">' + Gesamt + "</span>");
        } else {
          setContent("id", "Uhr", null, Gesamt);
        }
        window.setTimeout("ZeitAnzeigen()", 1000);
      }
    }
    </script>

    Wer jetzt noch Netscape 4 benutzt ist selber schuld. Schmeiß es raus.

    <body onload="initialize()" onunload="GUnload()">

    Einmal die schwere Keule: http://peter.michaux.ca/articles/the-window-onload-problem-still (bitte lesen, dazu sind Links da)

    <body onload="window.setTimeout('ZeitAnzeigen()', 1000)">
      <div id="Uhr" class="Uhr">&nbsp;</div>

    Noch ein body? Das würde einiges erklären. Einmal Grundlagen bitte:http://de.selfhtml.org/html/allgemein/grundgeruest.htm

  2. Hi

    Viele Scripte erwarten, dass sie einen window.onload Befehl für sich alleine haben.
    So wird dann der onload jedesmal überschrieben und es kann nur ein Script effektiv onload gestartet werden.

    Die Lösung ist, man binde keine Scripte mit window.onload ein, sondern mit einer Methode, welche vorherige Anweisung nicht überschreibt.

    Ich verwende das[1] hier:
    Diese Methode sollte dann von jedem später eingebundenen Script verwendet werden.

    //sollte einmal eingebunden werden  
    function addWindowOnLoadEvent(func) {  
    	var oldonload = window.onload;  
    	if (typeof window.onload != 'function') {  
    		window.onload = func;  
    	}  
    	else {  
    		window.onload = function() {  
    			if (oldonload) { oldonload(); }  
    			func();  
        		}  
    	}  
    }  
      
    //Anwendung  
      
    addWindowOnLoadEvent(someFunc);  
    addWindowOnLoadEvent(someOtherFunc);  
      
    
    

    [1] das ist eine relativ schnelle, aber nicht in allen Belangen flexible Version.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische