Prüfen ob Objetkt auf der HTML-Seite existiert

Hallo,

ich habe da ein Java-Skript für eine Uhr mit Datum. Das Skript funktioniert an sich auch recht gut, allerdings, wenn ich nun z.B. nur die Uhr, oder nur das Datum verwenden möchte, dann bekomme ich einen Skriptfehler, weil das Objekt nicht definiert ist.
Wie kann ich hier eine Abfrage einbauen, daß das Skript nur dann das entspechende auf der HTML-Seite ändern möchte, wenn dies auch existiert?

Gruß

Thomas

PS: Hier das betreffende Skript:

_function DigitalTime()
{
if(!document.layers && !document.all)
return

var months=new Array(13);
months[1]=„Januar“;
months[2]=„Februar“;
months[3]=„März“;
months[4]=„April“;
months[5]=„Mai“;
months[6]=„Juni“;
months[7]=„Juli“;
months[8]=„August“;
months[9]=„September“;
months[10]=„Oktober“;
months[11]=„November“;
months[12]=„Dezember“;
var time=new Date();
var lmonth=months[time.getMonth() + 1];
var date=time.getDate();
var year=time.getYear();
if (date_

Hallo Thomas

hab das Gefühl die if stimmt nicht:

wenn du abbrechen must sobald einer fehlt brauchst du ein „oder“:
if (!document.layers || !document.all)
{
alert(!document.layers || !document.all)
return
}

&& liefert nur dann true, wenn beide Objekte fehlen.

Mit dem alert kannst du mal schauen, ob was die Bedingung liefert.

mfg

Dirk.Pegasus

Hallo Dirk,

diese if stimmen noch, denn das ist an dieser Stelle nur eine Art Browserweiche, soweit ich das gesehen habe. Aber der Tip mit dem If ist trotzdem Gold wert. Ich brauche ja nur mit if abfragen, ob das Element existiert. Das sollte eigentlich gehen. Zumindest könnte ich es einmal testen.

Gruß

Thomas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Dirk,

in dem Bereich habe ich das Problem:

{
liveclock.innerHTML = digclock;
livedate.innerHTML = digdate;
}

Jede dieser Zeilen führt zu einem Skripterror, wenn der entsprechende Bereich in der HTML-Datei nicht existiert. Ich möchte aber, daß die entsprechende Zeile, wenn kein zugehöriger Bereich in der HTML-Datei existiert, einfach ignoriert wird.

Gruß

Thomas

Hallo Thomas,

function test()
{
if (!document.liveclock && !document.livedate )// && !livedate)
{
alert(„fehlt“);
}
else
{
liveclock.innerHTML = digclock;
livedate.innerHTML = digdate;
}
}

Das führt bei mir zu keinem Fehler. Das document fehlte. Muss wohl doch sein.

mfg

Dirk.Pegasus

Hallo Dirk,

ich hätte es jetzt einmal so probiert:

if (document.liveclock) {liveclock.innerHTML = digclock;}
if (document.livedate) {livedate.innerHTML = digdate;}

leider funktioniert das auch nicht. In deiner Version prüfst Du ja, wenn ich das richtig verstehe, nicht jedes einzeln, sondern immer gesamt. Ich aber will ja immer nur den Teil ausführen, der existiert.

Gruß

Thomas

function test()
{
if (!document.liveclock && !document.livedate )// &&
!livedate)
{
alert(„fehlt“);
}
else
{
liveclock.innerHTML = digclock;
livedate.innerHTML = digdate;
}
}

Das führt bei mir zu keinem Fehler. Das document fehlte. Muss
wohl doch sein.

Hallo Thomas,

existiert digClock immer?

if (document.liveclock && document.digclock)
{liveclock.innerHTML = digclock;}

if (document.livedate && document.digdate)
{livedate.innerHTML = digdate;}

Außerdem: Welcher Fehler kommt?

mfg

Dirk

Hallo Dirk,

ja, digclock existiert immer. Aber das ist eine Variable des Javaskriptes und hat nichts mit dem HTML-Dokument zu tun. Im HTML-Dokument existieren entweder liveclock, oder livedate, oder beides oder keines der beiden. Dieses sollte alles abgefangen werden.

Ich könnte Dir die Dateien per Mail schicken, denn dann kannst Du Dir die gesamten Zusammenhänge einmal ansehen. Auch mußte ich feststellen, daß das Skript z.B. beim neuesten Mozilla nicht funktioniert.

Gruß

Thomas

PS: Unter www.jusos-regen.de/uhr.html ist die Musterdatei auch zu finden.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Thomas,

Das Ende deiner Funktion so ändern:

else if (document.all)
{
if (document.all.liveclock)
liveclock.innerHTML = digclock;
if (document.all.livedate)
livedate.innerHTML = digdate;
}

mfg

Dirk