Links mit dropdown im anderen frame öffnen

Dreas

Grünschnabel
Hi Leute,

ich möchte mit Hilfe eines dropdown-Feldes im oberem frame verschiedene Seiten im unteren frame öffnen.
Irgendwie bekomme ich das aber nicht hin.
Ich bin soweit, dass ich über das dropdown-Feld die Seiten zwar öffnen kann, diese aber immer im gleichen frame erscheinen wollen.

Das steht im header:

Code:
<script language="JavaScript"> 
    function surfto(form) { 
        var myindex = form.navi.selectedIndex 
        if(form.navi.options[myindex].value != "0") { 
        window.location.href = form.navi.options[myindex].value; 
      } 
    } 
    </script>

Das ist der Rest:

Code:
<form name="myform">
<p align="center">
<select name="navi" onChange="surfto(this.form)" size=1>	
	<option value="0" selected>bitte auswählen</option>
	<option value="2003/Unfallstatistik 2003 1-tes Quartal .pdf" target="Hauptframe">Quartal 1</option>
	<option value="2003/Unfallstatistik 2003 2-tes Quartal .pdf">Quartal 2</option>
	<option value="2003/Unfallstatistik 2003 3-tes Quartal .pdf">Quartal 3</option>
	<option value="2003/Unfallstatistik 2003 4-tes Quartal .pdf">Quartal 4</option>
	<option value="2003/Unfallstatistik 2003.pdf">Zusammenfassung</option>
	</select></p>
</p>
</form>

Wie Ihr seht, hab ich beim Quartal1 schon mit target=Hauptframe probiert.
Geht aber nicht.
Wie mach ichs richtig?
 

Sven Mintel

Mitglied
Sofern das Frame, worin das geöffnet werden soll, auch den Namen "Hauptframe" trägt, könntest du statt:
Code:
window.location.href = form.navi.options[myindex].value;
..jenes
Code:
top.Hauptframe.location = form.navi.options[myindex].value;
...probieren.

Ob das klappt, hängt davon ab, ob der Browser PDF-Dokumente darstellen kann/will.....und ob er mit den Dateinamen klarkommt(Leerzeichen machen sich da weniger gut)
 

Dreas

Grünschnabel
Juhuu, das klappt!

Die pdf´s darstellen war kein Problem. Gingen nur immer im falschen frame auf.

Vielen Dank.
 

Dreas

Grünschnabel
Sorry, aber ich hab da noch ein Problem.
Wie mache ich das denn, wenn ich zwei dropdowns mit der gleichen Funktion einbauen möchte.
Die sollen nebeneinander stehen. Also im gleichen Formular?

Quelltext sieht jetzt so aus:

Code:
<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>1</title>
<base target="Hauptframe">
<style fprolloverstyle>A:hover {color: #FF0000}
</style>
    <title>Untitled</title> 
    
  
    <script language="JavaScript"> 
    function surfto(form) { 
        var myindex = form.navi.selectedIndex 
        if(form.navi.options[myindex].value != "0") { 
        top.Hauptframe.location = form.navi.options[myindex].value; 
      } 
    } 
       

    </script> 
    
     
</head>

<body link="#0000FF" vlink="#0000FF" alink="#FF0000" topmargin="6">

<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>

<form name="myform">
<p align="center">
<select name="navi" onChange="surfto(this.form)" size=1>	
	<option value="0" selected>bitte auswählen</option>
	<option value="2003/Unfallstatistik 2003 1-tes Quartal .pdf">Quartal 1</option>
	<option value="2003/Unfallstatistik 2003 2-tes Quartal .pdf">Quartal 2</option>
	<option value="2003/Unfallstatistik 2003 3-tes Quartal .pdf">Quartal 3</option>
	<option value="2003/Unfallstatistik 2003 4-tes Quartal .pdf">Quartal 4</option>
	<option value="2003/Unfallstatistik 2003.pdf">Zusammenfassung</option>
	</select>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<select name="navi0" onChange="surfto(this.form)" size=1>	
	<option value="0" selected>bitte auswählen</option>
	<option value="2004/Unfallstatistik 2004 1-tes Quartal .pdf">Quartal 1</option>
	<option value="2004/Unfallstatistik 2004 2-tes Quartal .pdf">Quartal 2</option>
	</select></p>
</form>

</body>

</html>

Muss ich da eine weitere function einbauen oder wie mache ich das?
 

Sven Mintel

Mitglied
Anstatt der Funktion als Argument das Formular zu übergeben, übergebe ihr die Liste selbst.
Dann weiss die Funktion, welche Liste gemeint ist...und du kannst ein und dieselbe Funktion für beide Listen verwenden....in welchem Formular sich die Liste befindet, ist ja eigentlich egal.
 

Dreas

Grünschnabel
Ich glaube grundsätzlich habe ich das verstanden.
Aber was muss ich genau ändern?
Hab noch nicht so viel Ahnung von javascript, brauche die Lösung aber rasch für die Firma.
Könntest Du mir bitte etwas genauere Infos geben?
 

Sven Mintel

Mitglied
Rufe die Funktion in den Listen(egal wie sie heissen und wieviele es davon gibt)...so auf:
Code:
<select onChange="surfto(this)">


Mit "this" übergibst du der Funktion die jeweilige Liste als Objekt...
du brauchst damit nicht erst in der Funktion selbst per
....form.navi.... das Objekt ermitteln
Code:
function surfto(liste) 
{ 
if(liste.options[liste.selectedIndex].value != "0")
 { 
 top.Hauptframe.location = liste.options[liste.selectedIndex].value;
 } 
}
....und weniger schreiben musst du auch:)