![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() |
![]() Mit folgendem Code lass ich im bottom_frame das Änderungsdatum der Seite anzeigen.
Bei dem Code ist ja eig. nur folgendes wichtig: var LastModDate = new Date(document.lastModified); So, und jetzt die Frage: Woruaf bezieht sich dieses "document"? Denn er aktualisert nur, wenn ich auch tatsächlich im bottom_frame was ändere und z.B. nicht im main_frame. Danke für die Hilfe! <td width="7%" height="42"> <div align="left"> <font size="1"><font face="Verdana, Arial, Helvetica, sans-serif">Aktualisiert am:</font> </font> <font size="1" style="bold"> <script language="JavaScript"> <!-- Hide JavaScript from Java-Impaired Browsers // --> function initArray() { this.length = initArray.arguments.length for (var i = 0; i < this.length; i++) this[i+1] = initArray.arguments[i] } var DOWArray = new initArray("So","Mo","Di","Mi","Do","Fr","Sa"); var MOYArray = new initArray("Jan","Feb","März","Apr","Mai","Juni","J uli","Aug","Sept","Okt","Nov","Dez"); var LastModDate = new Date(document.lastModified); var Name = navigator.appName; document.write(DOWArray[(LastModDate.getDay()+1)],", "); document.write(MOYArray[(LastModDate.getMonth()+1)]," "); if ( Name == "Netscape" ) { document.write(LastModDate.getDate(),", ",(LastModDate.getYear()+1900)); } else { document.write(LastModDate.getDate(),", ",(LastModDate.getYear())); } </script> </font></p> </div></td>
____________________________________
lg WF |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() document bezieht sich immer auf die gerade geladene Seite.
Wenn du das änderungsdatum des Hauptframes anzeigen willst musst du mit parent.frames[i].document... darauf zugreifen, wobei i die Nummer des Frames ist, das erste Frame ist frame[0], das zweite [1],usw. Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() |
![]() Die Durchnummeriering bezieht sich auf die reihenfolge im frameset?
Mein Frameset: <frameset rows="17%,83%" cols="*" border="0"> <frame name=FrameOben src=FrameOben.htm scrolling=no marginleft="8" marginheight="8" marginwidth="8" noresize> <frameset rows="*" cols="19%,81%" border="0"> <frame name=FrameLinks src=FrameLinks.htm scrolling=no marginwidth="8" marginheight="0"> <frameset rows="5%,89%,6%" cols="*" border="0"> <frame name=FrameNewsticker src=FrameNewsticker.htm scrolling=no marginwidth="0" marginheight="5" noresize> <frame name=FrameText src=FrameText.htm marginwidth="8" marginheight="0" scrolling="auto" noresize> <frame name=FrameSponsoren src=FrameSponsoren.htm scrolling=no marginwidth="8" marginheight="0" noresize> </frameset> </frameset> </frameset> D.h. wenn ich den Main-Frame ("FrameText") als zu zählen definieren will, dann heißts: var LastModDate = new Date(parent.frames[4].document.lastModified); oder? --> Ist es nicht möglich mehrere Frames einzubeziehen, d.h. EGAL WO etwas an der Seite geändert wurde - der Hinweis wird aktualisiert???
____________________________________
lg WF |
![]() |
![]() |
![]() |
#4 | |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() Wie die Zählung genau geht weiß ich nicht, mußt du wohl ausprobieren.
An und für sich sollte man ein Frame auch über parent.NameDesFrames ansprechen könnnen, ob das wirklich geht weiß ich aber nicht. Zitat:
Im zweifelsfall gets so (falls ich keinen Fehler eingebaut hab ![]() Code:
function findMaxTime{ var index=0; var maxTime=parent.frames[0].document.lastModified.parse(); for(int i=0;i<parent.frames.length;i++){ var newTime=parent.frames[i].document.lastModified.parse(); if (newTime>maxTime){ maxTime=newTime; index=i; } } return i; } var letzteAenderung=parent.frames[findMaxTime()].lastModified; P.S.:Falls was nicht funktioniert, schau mal bei www.teamone.de/selfhtml vorbei, dort ist fast alles erklärt. Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
|
![]() |
![]() |
![]() |
#5 |
Veteran
![]() |
![]() nur um sicherzugehen: wo bau ich das ein?
Hab schon mal herzlichen Dank für Deine Mühe - hast Dir ja echt viel gedanken gemacht!
____________________________________
lg WF |
![]() |
![]() |
![]() |
#6 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() Falls es funktioniert musst du den function Teil am Anfang ( vor "function initArray()" ) einbauen. der Teil " var letzteAenderung=parent.frames[findMaxTime()].document.lastModified;" muss ein bischen abgeändert werden (da hat sich ein kleinerFehler eingeschlichen, man muß klarerweise zuerst ein Date Objekt mittels new erzeugen): schreib einfach den Teil nach dem = dort hin wo jetzt "var LastModDate=new Date(document.lastModified);
" steht, so das dortsteht: var LastModDate=new Date(parent.frames[findMaxTime()].document.lastModified); Falls du ein bischen an den Hintergründen interessiert bist: Mit der Zeile var LastModDate=new Date(document.lastModified); wird ein neues Objekt vom Typ Date (das macht das Schlüsselwort "new") erzeugt, dem bei der Erzeugung der Wert von document.lastModified zugewiesen wird. Mit new ruft man den sogenannten Konstruktor einer Klasse auf, dieser "erzeugt"ein neues Objekt. Im einfachsten fall wird mit new KlassenName() ein Objekt vom Typ KlassenName erzeugt, wobei dem Konstruktor keine Parameter übergeben werden. In diesem Fall wird das Objekt mit Standardwerten initialisiert. Es gibt aber auch Konstruktoren, die man mit Parametern aufrufen kann. Dies geschieht hier: mit "new Date(document.lastModified)" wird der Konstruktor von Date mit dem Parameter "document.lastModified" aufgerufen (document.lastModified ist auch ein Date Objekt). Im Konstruktor ist jetzt bestimmt "wenn ich mit einem Date Objekt als Parameter aufgerufen werde, so bekommt das Objekt das ich erzeuge den Wert des übergebenen Date Objektes". D.h. das neu erzeugte Objekt hat den selben Wert wie document.lastModified . (Was ich hier ein bischen naiv formuliert habe heißt in Wirklichkeit überladen und ist ein extrem praktisches Werkzeug). Ich hoffe es wahr verständlich (und interessant). Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
#7 |
Veteran
![]() |
![]() Thanks a lot
Mein Code schaut jetzt so aus: Code:
<font size="1"><font face="Verdana, Arial, Helvetica, sans-serif">Aktualisiert am:</font> </font><font size="1" style="bold"> <script language="JavaScript"> <!-- Hide JavaScript from Java-Impaired Browsers // --> function initArray() { this.length = initArray.arguments.length for (var i = 0; i < this.length; i++) this[i+1] = initArray.arguments[i] } var DOWArray = new initArray("So","Mo","Di","Mi","Do","Fr","Sa"); var MOYArray = new initArray("Jan","Feb","März","Apr","Mai","Juni","Juli","Aug","Sept","Okt","Nov","Dez"); var LastModDate = new Date(parent.frames[4].document.lastModified); var Name = navigator.appName; document.write(DOWArray[(LastModDate.getDay()+1)],", "); document.write(MOYArray[(LastModDate.getMonth()+1)]," "); if ( Name == "Netscape" ) { document.write(LastModDate.getDate(),", ",(LastModDate.getYear()+1900)); } else { document.write(LastModDate.getDate(),", ",(LastModDate.getYear())); } </script> </font></p>
____________________________________
lg WF |
![]() |
![]() |
![]() |
#8 |
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
![]() Der Teil
Code:
if ( Name == "Netscape" ) { document.write(LastModDate.getDate(),", ",(LastModDate.getYear()+1900)); } else { document.write(LastModDate.getDate(),", ",(LastModDate.getYear())); } Es geht aber einfacher mit: Code:
document.write(LastModDate.getDate(),", ",(LastModDate.getFullYear()));
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
![]() |
![]() |
![]() |
#9 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() mach mal nach der Zeile var LastModDate = new Date(parent.frames[4].document.lastModified);
ein alert(LastModDate); und schau was er ausgibt. Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
#10 |
Veteran
![]() |
![]() MsgBox kommt
____________________________________
lg WF |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|