Hilfe - Script "ZweiFrames" funktioniert nicht
Micha
- javascript
Hallo!
Ich versuche das Script "ZweiFrames" von diesen Seiten auf meiner Homepage zu nutzen.
Leider scheint es nicht zu funktionieren, es wird immer "Fehler auf der Seite" angezeigt.
Vielleicht kann mir ja jemand weiterhelfen.
Konkret geht es um die Seite http://www.wendesse-handball.de
Im linken Navigations-Frame gibt es unten (!) einen Link "Home" bei dem in den beiden anderen Frames "header_index.html" und "body_index.html" neu angezeigt werden sollten. Klappt aber leider nicht. :o(
Vielen Dank im voraus!
Gruß
Micha
Hallo!
hier sind mal ein paar fehlermeldungen, vieleicht helfen sie die ja, mir sagen sie nicht allzuviel:
http://www.wendesse-handball.de/Saison_2002_03/Team/header_team.html
Timeout thread: delay 1000 ms
Error:
name: ReferenceError
message: Statement on line 1: Reference to undefined variable: No such variable 'ZeitAnzeigen'
Backtrace:
In unknown script
ZeitAnzeigen();
Timeout thread: delay 100 ms
Error:
name: TypeError
message: Statement on line 17: Expression evaluated to null or undefined and is not convertible to Object: document.styleSheets
Backtrace:
Line 17 of linked script http://www.wendesse-handball.de/script.js
var ss = document.styleSheets["NOF_STYLE_SHEET"];
Line 5 of linked script http://www.wendesse-handball.de/script.js
F_F1();
Line 4 of inline#3 script in http://www.wendesse-handball.de/Saison_2002_03/Team/body_team.html
document.main = new F_cMain;
In unknown script
top.frames["body"].F_doLoaded();
http://www.wendesse-handball.de/Saison_2002_03/Team/header_team.html
Timeout thread: delay 1000 ms
Error:
name: ReferenceError
message: Statement on line 1: Reference to undefined variable: No such variable 'ZeitAnzeigen'
Backtrace:
In unknown script
ZeitAnzeigen();
gruß
norbert
hallo Norbert,
hier sind mal ein paar fehlermeldungen, vieleicht helfen sie die ja
Die Fehlermeldungen sind _relativ_ nutzlos, weil das Problem an einer Stelle liegt, an der Micha wahrscheinlich ein _generelles_ Verständnisproblem hat.
Aber wenn wir schonmal bei "Fehlermeldungen" sind, habe ich dazu noch ein paar Anmerkungen: im Frameset gibt es unter anderem die Angabe
<META NAME="Generator" CONTENT="NetObjects Fusion 5.0.2 für Windows">
Abgesehen davon, daß man seinen "Generator" niemals verraten sollte, kommen wegen dieses Generators wahrscheinlich auch solche Angaben wie
<FRAME NAME="left" TITLE="left" SRC="./left_defaultmasterborder.html"
zustande. Pfadangaben, die mit "./" beginnen, sind zwar nicht grundsätzlich falsch, sollten aber doch besser vermieden werden.
So, und nun zum "Fehler":
Das Script, das Micha benutzt, steht in http://www.wendesse-handball.de//left_defaultmasterborder.html und hat folgendes Aussehen:
<script type="text/javascript">
<!--
function ZweiFrames(URI1,F1,URI2,F2) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.location.href = URI1;
Frame2.location.href = URI2;
}
//-->
</script>
Wirds klar? Micha hat _drei_ Frames, sein Script fragt aber nur nach _zwei_ Frames und kann also gar nicht funktionieren.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
Du hast schon Recht, ich habe drei Frames, aber die Funktion soll bewirken, daß bei dem Klick auf den folgenden Link, zwei Frames gleichzeitig geändert werden:
<a href="javascript:ZweiFrames('body_index.html','body','header_index.html','header')"><b>Home</b></a>
Es soll im "body"-Frame die body_index.html und im "header"-Frame die header_index.html angezeigt werden.
Das Script habe ich von der SELFHTML-Seite unter:
http://selfhtml.teamone.de/javascript/beispiele/zweiframes.htm
Eigentlich müßte das doch funktionieren, oder? Leider kenne ich mich mit der ganzen Materie noch nicht wirklich aus. :o( Aber vielleicht hat ja jemand einen Tipp für mich.
Kann man das Anzeigen des "Generator"-Tags unter Netobjects Fusion irgendwie verhindern? Das wird automatisch generiert, genauso wie die Pfadangaben mit "./".
Viele Grüße
Micha
hallo Norbert,
hier sind mal ein paar fehlermeldungen, vieleicht helfen sie die ja
Die Fehlermeldungen sind _relativ_ nutzlos, weil das Problem an einer Stelle liegt, an der Micha wahrscheinlich ein _generelles_ Verständnisproblem hat.Aber wenn wir schonmal bei "Fehlermeldungen" sind, habe ich dazu noch ein paar Anmerkungen: im Frameset gibt es unter anderem die Angabe
<META NAME="Generator" CONTENT="NetObjects Fusion 5.0.2 für Windows">
Abgesehen davon, daß man seinen "Generator" niemals verraten sollte, kommen wegen dieses Generators wahrscheinlich auch solche Angaben wie
<FRAME NAME="left" TITLE="left" SRC="./left_defaultmasterborder.html"
zustande. Pfadangaben, die mit "./" beginnen, sind zwar nicht grundsätzlich falsch, sollten aber doch besser vermieden werden.So, und nun zum "Fehler":
Das Script, das Micha benutzt, steht in http://www.wendesse-handball.de//left_defaultmasterborder.html und hat folgendes Aussehen:
<script type="text/javascript">
<!--
function ZweiFrames(URI1,F1,URI2,F2) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.location.href = URI1;
Frame2.location.href = URI2;
}
//-->
</script>Wirds klar? Micha hat _drei_ Frames, sein Script fragt aber nur nach _zwei_ Frames und kann also gar nicht funktionieren.
Grüße aus Berlin
Christoph S.
guten Abend Micha,
die Funktion soll bewirken, daß bei dem Klick auf den folgenden Link, zwei Frames gleichzeitig geändert werden:
<a href="javascript:ZweiFrames('body_index.html','body','header_index.html','header')"><b>Home</b></a>
Das ist mir schon klar - und das funktioniert auch, wenn du dir das Script ein _kleines_ bißchen umschreibst. Du kommst selber drauf, wenn du dir genau anschaust, welches Frame wann wie von deiner Funktion angesprochen wird. Und wenn es dir nicht klar werden sollte, kannst du mal im Forums-Archiv nach "Drei Frames" suchen, wir haben das schon mehrfach debattiert und die brauchbarsten Lösungen extra für dich archiviert.
Das Script habe ich von der SELFHTML-Seite
Das hättest du jetzt nicht unbedingt mehr schreiben müssen, das erkennt jeder sofort, der mal in SELFHTML herumgelesen hat. Macht aber nix; nur verstehen mußt du es halt noch lernen.
Aber vielleicht hat ja jemand einen Tipp für mich.
Du hast selber schon den besten Tip gefunden, den dir sonst jemand herschreiben könnte. Das einzige, was dir niemand abnehmen kann, ist, das in SELFHTML beschriebene Beispiel wirklich zu _verstehen_.
Kann man das Anzeigen des "Generator"-Tags unter Netobjects Fusion irgendwie verhindern?
Das weiß ich nicht, weil ich mit solcher Software grundsätzlich nicht arbeite. Du solltest dir aber ebenfalls grundsätzlich angewöhnen, HTML-Dokumente, die du mit irgendeinem "Editor" zusammenschraubst, hinterher im einfachsten Texteditor, den du hast, nochmals "von Hand" zu kontrollieren und solche fragwürdigen tags rauszuwerfen.
[fullquoting eliminiert]
Grüße aus Berlin
Christoph S.
Hallo Micha,
zu Deiner Frameset-Deklaration:
DEINE Datei hat folgende Struktur:
<HTML>
<HEAD>
<FRAMESET></FRAMESET>
</HEAD>
</HTML>
Dies ist einfach falsch. Richtig ist folgende Struktur:
<HTML>
<HEAD></HEAD>
<FRAMESET></FRAMESET>
</HTML>
Jetzt weiter mit Deiner "left_defaultmasterborder.html".
Hier steht unten folgender Quelltext:
</BODY>
<BR>
<a href="javascript:ZweiFrames('body_index.html','body','header_index.html','header')"><b>Home</b></a>
usw.
Darzustellende Elemente werden IM 'body'-Element notiert - NICHT danach !
Also:
<BR>
<a href="javascript:ZweiFrames('body_index.html','body','header_index.html','header')"><b>Home</b></a>
usw.
</BODY>
Es gibt uebrigens noch etliche andere Fehler, die Dir Dein 'NetObjects Fusion 5.0.2 für Windows' in Deine Dateien geschmiert hat - schau mal hier: http://validator.w3.org/check?uri=http%3A%2F%2Fwww.wendesse-handball.de%2Fleft_defaultmasterborder.html&charset=(detect+automatically)&doctype=(detect+automatically)
mein Vorschlag: schmeiss NOF weg und benutze Notepad - dann gibt es auch validen Quelltext ;-)
gruesse
rainer groth
Hallo Micha,
einen grossen Fehler in Deiner "left_defaultmasterborder.html" habe ich noch:
<BASE TARGET="_parent">
...loesche diese Zeile (dann klappt es auch mit der ZweiFrames-Funktion).
gruesse
rainer groth
hi Rainer,
einen grossen Fehler in Deiner "left_defaultmasterborder.html" habe ich noch: <BASE TARGET="_parent">
Da ist noch wesentlich mehr an Fehlern zu finden. Was hältst du von
<BODY NOF="(MB=(DefaultMasterBorder, 72, 78, 100, 100), L=(HomeLayout, 800, 1531))" BGCOLOR="#FFCC00" TOPMARGIN=2 LEFTMARGIN=2 MARGINWIDTH=2 MARGINHEIGHT=2> ?
Das kann man nun leider nicht einfach löschen, aber korrigieren kann mans.
Außerdem:
parent.[F1].location.href = URI1;
parent.[F2].location.href = URI2;
ist meines Erachtens eine Hilfskonstruktion - gut, sie funktioniert, bloß muß man verstehen können, warum. Günstiger wäre es möglicherweise, hier
parent.Framename1.location.href = URI1;
parent.Framename2.location.href = URI2;
vorzugeben, wobei oben natürlich auch anstelle von Fx eben Framenamex notiert werden müßte.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
Da ist noch wesentlich mehr an Fehlern zu finden.
Darum soll er sein 'NetObject Fusion' ja auch schrotten ;-)
Außerdem:
ist die aktuelle ZweiFrames-Funktion mit dem dazu gehoerenden Beispiel eh schon peinlich, weil sie mit <a href="javascript:xxx" aufgerufen wird - aber die Errata werden es richten (hoffe ich mal).
gruesse
rainer groth
morgens,
Da ist noch wesentlich mehr an Fehlern zu finden.
Darum soll er sein 'NetObject Fusion' ja auch schrotten ;-)
Da sind wir ja absolut identischer Ansicht.
Ich hatte dich gestern abend ermuntert, dich bei Gelegenheit häufiger "einzumischen". Ich sehe, du hast es getan, und - the Winner is: Tobias !
Was wollen wir eigentlich mehr von einem sachorientierten Thread verlangen?
;-)
Grüße aus Berlin
Christoph S.
Hallo Christoph,
Ich hatte dich gestern abend ermuntert, dich bei Gelegenheit häufiger "einzumischen".
Netter Appell, aber ich habe mir Zurueckhaltung auferlegt, um eventuelle Laber-Threads nicht aufzublaehen - konkret: ich lese meine Postings dreimal und kontrolliere noch einmal die Hauptdatei, bevor ich poste.
Die Diskussion in [pref:t=55791&m=311483] finde ich z.B. sehr erfrischend, obwohl ich nur einen kleinen Anteil daran habe - mein Standpunkt wird halt schon von Kollegen vertreten - also habe ich Sendepause ;-)
Ausnahme: Doppelposting- und Troll-Meldungen.
Ich sehe, du hast es getan, und - the Winner is: Tobias !
Aha - und wer oder was ist Tobias ?
gruesse
rainer groth
Vielen Dank für Eure Antworten!!
Ich denke damit bekomme ich es hin. :o))
Kompliment an dieses Forum - superschnelle und kompetente Hilfe!
Viele Grüße
Micha
hi,
function ZweiFrames(URI1,F1,URI2,F2) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame1.location.href = URI1;
Frame2.location.href = URI2;
}
Wirds klar? Micha hat _drei_ Frames, sein Script fragt aber nur nach _zwei_ Frames und kann also gar nicht funktionieren.
normalerweise bin ich von dir aber kompetentere antworten gewohnt ...?
was hat denn die anzahl der frames mit dem problem zu tun?
das script greift über die framen_namen_ auf die frames zu (die natürlich beim aufruf korrekt übergeben werden müssen).
ein zugriff über die nummer der frames findet überhaupt nicht statt.
was also meintest du mit dieser antwort?
gruss,
wahsaga