# Sprung/ Auswahlmenu - Help needed



## Feelgood333 (28. August 2012)

Ich hab mir ein Selectmenu zusammen gebastelt. Funktioniert ja soweit recht gut, nur sollen die Seiten nach der getroffenen Auswahl in einem neuen Fenster oder neuem Tab geöffnet werden.

Kann mir da mal eben jemand helfen? Danke




Hier der bisherige Code:

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="JavaScript" type="text/JavaScript"><!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<title>select_new</title>
</head>
<body>
<!-- hier Box definition rein ! <br-->
<font size="-1"><span style="font-family: Arial;">please
choose:</span></font><br>
<select style="font-family: Arial;" name="select"
onchange="MM_jumpMenu('parent',this,1)">
<option value="http://www.seite1.com" selected="selected">Auswahl
1</option>
<option value="http://www.seite2.com" selected=" selected=">Auswahl
2</option>
<option value="http://www.seite3.com" selected="selected">Auswahl
3</option>
<option value="http://www.seite4.com" selected="selected">Auswahl
4</option>
<option value="http://www.seite5.com" selected="selected">Auswahl
5</option>
</select>
</body>
</html>
```


----------



## ComFreek (28. August 2012)

Hallo Feelgood,

erstmal möchte ich dich auf die HTML-Tags ([code=html]...[/code]) hinweisen, welche Code angenehm formatieren können 

Zu deinem Problem: dazu kannst du window.open benutzen.

Ich habe mal deinen Code etwas angepasst und verbessert. eval() sollte normalerweise nie nutzen (v.a. wie du es tust).


```
window.onload = function () {
  document.getElementsByTagName("select")[0].onchange = function () {
    var opt = this.options[this.selectedIndex].value;

    // Evtl. noch weitere Optionen als drittes Argument
    // Siehe mein Link zum Mozilla Developer Network (MDN)
    window.open(opt.value, opt.innerText);
  }
}
```


```
<select style="font-family: Arial;" name="select">
  <option value="http://www.seite1.com" selected="selected">Auswahl
  1</option>
  
  <option value="http://www.seite2.com" selected=" selected=">Auswahl
  2</option>

  <option value="http://www.seite3.com" selected="selected">Auswahl
  3</option>

  <option value="http://www.seite4.com" selected="selected">Auswahl
  4</option>

  <option value="http://www.seite5.com" selected="selected">Auswahl
  5</option>
</select>
```

Übrigens ist das <font>-Element schon veraltet! Man sollte besser CSS nutzen, z.B.:

```
<!-- alt -->
<font size="-1"><span style="font-family: Arial;">please
choose:</span></font>

<!-- neu -->
<span class="small">Please choose:</span>
```


```
/* neu */
.small {
  font-size: 0.8em;
  font-family: Arial;
}
```


----------



## tombe (28. August 2012)

Du könntest eventuell mit "window.open" ein neues Fenster öffnen.


----------



## Feelgood333 (28. August 2012)

@ComFreak

Jetzt hab ich das ganze nach Deinem Vorschlag umgebaut - leider öffnet sich jetzt gar nichts mehr! Wo ist der Fehler? 

```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <script language="JavaScript" type="text/JavaScript">
window.onload = function () { document.getElementsByTagName("select")[0].onchange = function () {
var opt = this.options[this.selectedIndex].value
// Evtl. noch weitere Optionen als drittes Argument
// Siehe mein Link zum Mozilla Developer Network (MDN)
window.open(opt.value, opt.innerText);
}
  </script>
  <title>select_new</title>
</head>
<body>
<!-- hier Box definition rein ! <br-->
<font size="-1"><span style="font-family: Arial;">please
choose:</span></font>
<select style="font-family: Arial;" name="select">
<option value="http://www.seite1.com" selected="selected">Auswahl
1</option>
<option value="http://www.seite2.com" selected=" selected=">Auswahl
2</option>
<option value="http://www.seite3.com" selected="selected">Auswahl
3</option>
<option value="http://www.seite4.com" selected="selected">Auswahl
4</option>
<option value="http://www.seite5.com" selected="selected">Auswahl
5</option>
</select>
</body>
</html>
```


----------



## ComFreek (28. August 2012)

Du hast beim Kopieren meines JS-Codes eine geschweifte Klammer vergessen. Bei mir funktioniert es dann.


Und bitte, wie bereits gesagt, *HTML-Tags verwenden!*
Ich habe sie jetzt erneut für dich hinzugefügt.


----------



## Feelgood333 (28. August 2012)

ich kapiers echt nicht  - jetzt hab ich mir den kompletten Code von Dir kopiert  - Es werden die Links einfach nicht geöffnet. Was muss ich denn noch ändern?

Schwerer Fall mit mir, ich weiß!  ;-)


----------



## ComFreek (28. August 2012)

Also auf dieser Testseite funktioniert es: http://jsfiddle.net/7KkUQ/

Gibt es bei dir irgendwelche Einträge in der Fehlerkonsole des Browsers?


----------



## Feelgood333 (28. August 2012)

von Mozilla und IE kommt keine Fehlermeldung -  es wird alles sauber angezeigt, nur wenn man dann die Auswahl macht, passiert nichts mehr!  Auf deiner Testseite geht es.

Cache ist geleert, usw.

Ich habe den Code im NVU gemacht - genauer gesagt, deinen Code kopiert, ihn unter dem Reiter Quelltext eingefügt und abgespeichert.  Noch  ne Idee?


----------



## ComFreek (28. August 2012)

Es kann gut sein, dass NVU (WYSIWHG-Editor) noch irgendeinen Code reinkopiert, welcher fehlerhaft ist oder anderen Code sozusagen "blockiert".

Am besten postest du mal den HTML-Quelltext, den NVU dir generiert!
Ansonsten kannst du mal schnell diese Version ausprobieren:

```
window.addEventListener("load", function () {
  document.getElementsByTagName("select")[0].onchange = function () {
    var opt = this.options[this.selectedIndex].value;
 
    // Evtl. noch weitere Optionen als drittes Argument
    // Siehe mein Link zum Mozilla Developer Network (MDN)
    window.open(opt.value, opt.innerText);
  }
});
```
Eventuell fügt NVU irgendwo später noch einen JS-Block ein, welcher window.onload überschreibt.


----------



## Feelgood333 (29. August 2012)

der Quellcode war direkt aus NVU! Echt zum verzweifeln.

Was nun - HILFE! :-(


----------

