Mehrere Scripts parallel laufen lassen
Philipp Grashoff
- javascript
Ich habe ein kleines Problem (und habe groß keine
Ahnung von Jscript):Ich habe nun ein Script fuer Rollover-Buttons.
Nun will ich auch ein Script, dass mehrere Frames
gleichzeitig veraendert, einbauen. (Habe beide
Scripts aus Selfhtml) Ich habe nun schon einiges
ausprobiert, aber ich schaffe es nicht, dass
beide Scripts parallel funktionieren. Muss ich im
Head 2 verschiedene Script-Bereiche deklarieren,
oder beide in einen einzelnen Bereich machen?
Die Scipts einzeln Funktionieren ReibungslosMFG
Philipp
Hallo,
Ich habe ein kleines Problem (und habe groß keine
Ahnung von Jscript):
Jscipt != JavaScript, siehe
http://selfhtml.teamone.de/dhtml/modelle/microsoft.htm#scriptsprachen
Ich habe nun ein Script fuer Rollover-Buttons.
Nun will ich auch ein Script, dass mehrere Frames
gleichzeitig veraendert, einbauen. (Habe beide
Scripts aus Selfhtml) Ich habe nun schon einiges
ausprobiert, aber ich schaffe es nicht, dass
beide Scripts parallel funktionieren.
Hast Du vielleicht Variablen- oder Funktionsnamen doppelt verwendet? Da kommt der Browser natürlich durcheinander. Normalerweise sollte es kein Problem sein, beide Scripte einzubinden. Poste mal Deine html-Seite incl. Scripte.
Muss ich im
Head 2 verschiedene Script-Bereiche deklarieren,
oder beide in einen einzelnen Bereich machen?
Wie Du willst: 1 oder 2 <script>-Bereiche, 1 oder 2 externe *.js-Dateien.
Gruß Markus
So, hier iss das script. der Fehler muss hier liegen und nicht im Aufruf, habs ausprobiert. Vielen Dank fuer die schnelle Antwort, Markus. Ich mache mich waehrenddessen mal dran, Javascript zu lernen (Ja, ich meine Javascript, nicht Jsciprt)
MFG Philipp
<script type="text/javascript">
<!--
Normal1 = new Image();
Normal1.src = "rollovers/about_01.gif";
Highlight1 = new Image();
Highlight1.src = "rollovers/about_01_over.gif";
Normal2 = new Image();
Normal2.src = "rollovers/angebote_01.gif";
Highlight2 = new Image();
Highlight2.src = "rollovers/angebote_01_over.gif";
Normal3 = new Image();
Normal3.src = "rollovers/projekte_01.gif";
Highlight3 = new Image();
Highlight3.src = "rollovers/projekte_01_over.gif";
Normal4 = new Image();
Normal4.src = "rollovers/kontakt_01.gif";
Highlight4 = new Image();
Highlight4.src = "rollovers/kontakt_01_over.gif";
Normal5 = new Image();
Normal5.src = "rollovers/links_01.gif";
Highlight5 = new Image();
Highlight5.src = "rollovers/links_01_over.gif";
function DreiFrames(URI1,F1,URI2,F2,URl3,F3) {
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame3=eval("parent."+F3);
Frame1.location.href = URI1;
Frame2.location.href = URI2;
Frame3.location.href = URI3;
}
function Bildwechsel(Bildnr,Bildobjekt) {
window.document.images[Bildnr].src = Bildobjekt.src;
}
-->
</script>
Moin!
So, hier iss das script. der Fehler muss hier liegen und nicht im Aufruf, habs ausprobiert.
Woher willst du das wissen? Dein Code hier sieht fehlerlos aus. Also kann es an dem nicht gelegen haben.
Meist ist der Aufruf auch entscheidend für das Funktionieren - gehört also mit zum Code, und hätte geholfen, deine Frage schon zu beantworten...
- Sven Rautenberg
Ich habs mittlerweile geschafft! Doch nun stellt sich ein anderes Problem:
hier ein auszug aus meinem frameset. Das Script befindet sich in der menue.html. Wenn ich nun auf einen Link klicke, so aendern sich nur die Frames "links" und "main", der Frame "oben" jedoch bleibt unveraendert. Kann das daran liegen, dass er in einem anderen Frameset ist?
<frame src="menue.html" name="menue">
<frameset rows="40,*">
<frame src="oben.html" name="oben">
<frameset cols="135,435" border>
<frame src="links.html" name="links">
<frame src="main.html" name="main">
</frameset>
</frameset>
MFG
Philipp
Ich habs mittlerweile geschafft! Doch nun stellt sich ein anderes Problem:
hier ein auszug aus meinem frameset. Das Script befindet sich in der menue.html. Wenn ich nun auf einen Link klicke, so aendern sich nur die Frames "links" und "main", der Frame "oben" jedoch bleibt unveraendert. Kann das daran liegen, dass er in einem anderen Frameset ist?
Ja. _Kann_ nicht nur daran liegen, _liegt_ daran.
<frame src="menue.html" name="menue">
<frameset rows="40,*">
<frame src="oben.html" name="oben">
<frameset cols="135,435" border>
<frame src="links.html" name="links">
<frame src="main.html" name="main">
</frameset>
</frameset>
Du brauchst eine angepaßte Frameändernfunktion.
Diese drei Zeilen gehen vom aktuellen Fenster aus eine Stufe nach oben, und dann in das Fenster, dessen Namen du übergeben hast.
Frame1=eval("parent."+F1);
Frame2=eval("parent."+F2);
Frame3=eval("parent."+F3);
Und diese drei Zeilen ändern dann die HTML-Datei.
Frame1.location.href = URI1;
Frame2.location.href = URI2;
Frame3.location.href = URI3;
Dein Frame "oben" liegt aber zwei Ebenen oberhalb des aktuellen Fensters.
Ändere mal probeweise den Framenamen von "oben" auf "parent.oben" ab und probiere dann.
Ansonsten: Fehlermeldung posten!
- Sven Rautenberg
Ändere mal probeweise den Framenamen von "oben" auf "parent.oben" ab und probiere dann.
Im AUFRUF natürlich. Also im Link. Nicht in der Funktion selbst.
- Sven Rautenberg
<a href="javascript:DreiFrames('html/about.html','main','links/about.html','links', 'titel/about.html','parent.oben')"
hier mein Link. Funktioniert aber leider nicht ;) Trotzdem vielen Dank fuer die Antwort! Ohne das Forum waere ich verloren...
MFG Philipp
<a href="javascript:DreiFrames('html/about.html','main','links/about.html','links', 'titel/about.html','parent.oben')"
hier mein Link. Funktioniert aber leider nicht ;) Trotzdem vielen Dank fuer die Antwort! Ohne das Forum waere ich verloren...
Tja, ich schätze, mit Framesnamen wirst du nicht unbedingt weiterkommen.
Wenn ich es richtig überblicke, hast du folgende Struktur:
top
!
+----menue
!
+----(ohne Namen)
!
+----oben
!
+----(ohne Namen)
!
+----links
!
+----main
Mit diesem Baum kannst du klar sehen, wie du von einem Frame aus mit Javascript einen anderen ansprechen kannst.
Aus einem beliebigen Frame heraus: top.menue.location.href ändert dein Menü oben.
Aus Frame 'main' heraus: parent.links.location.href ändert dein 'links'-Fenster.
Du kriegst es aber scheinbar nicht hin, aus main heraus mit parent.parent.oben den oberen Frame anzusprechen.
Was geht dann doch? Ändere dein Frameset! Mach pro Ebene nur ein Frameset, welches seinerseits wieder ein Frameset nachlädt. Dann kannst du dem Fenster, welches das Frameset lädt, auch einen Namen geben.
Alternativ experimentierst du mit dem window.frames-Array und schaust, ob sich die Frames nicht über das Array ansprechen lassen. Theoretisch sollte es gehen. Praktisch habe ich damit keine Erfahrung, bei mir funktioniert immer Methode 1 (Frameset-Datei mit Frameset laden, nicht in EINER Datei verschachteln).
- Sven Rautenberg
Vielen Dank fuer die Antwort, Sven!
Das mit den Framesets in einzelnen Dateien klingt sehr gut, ich werde das gleich mal ausprobieren! (Ich habe zwar 4 Framesets, aber egal ;)
MFG
Philipp
Hi,
weiß gar nicht, was eigentlich im 'frames'-Objekt so alles steckt. Sind die da auch hierarchisch angeordnet?
Sonst ginge doch einfach frames['oben'] und da müßte doch gut sein oder nicht? Meines Wissens müßte auch frames.oben gehen, weil wenn ich da mal was falsch gemacht habe, dann hatte die javascript-console immer das so geparst.
hatte also z.B. stehen
onEinEvent="frames['myframe'].funktionGabsNochNicht();"
In der Javascript-Konsole von Netscape 6 stand dann immer: frames.myframe.funktionGabsNochNicht - unbekannte Funktion
Wenn's dann richtig war, funzte es auch.
Gruß and good luck,
Andreas
Ich habs jetzt Endlich geschafft! (Dummer Sytaxfehler hatte sich eingeschlichen... nun ja) Vielen Dank an alle, die mir geholfen haben!
mfg
Philipp