Sprung/ Auswahlmenu - Help needed

Feelgood333

Grünschnabel
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:
HTML:
<!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>
 
Zuletzt bearbeitet von einem Moderator:
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).

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);
  }
}

HTML:
<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.:
HTML:
<!-- alt -->
<font size="-1"><span style="font-family: Arial;">please
choose:</span></font>

<!-- neu -->
<span class="small">Please choose:</span>
CSS:
/* neu */
.small {
  font-size: 0.8em;
  font-family: Arial;
}
 
Zuletzt bearbeitet von einem Moderator:
@ComFreak

Jetzt hab ich das ganze nach Deinem Vorschlag umgebaut - leider öffnet sich jetzt gar nichts mehr! Wo ist der Fehler?
HTML:
<!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>
 
Zuletzt bearbeitet von einem Moderator:
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.
 
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ß! ;-)
 
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?
 
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:
Javascript:
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.
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück