• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Switch Case/Break/Defaul - funktioniert nicht

schenki

New member
Hallo liebes Forum,
um ein Problem mit gewissen Auflösungen zu lösen habe ich mich nun entschieden die Switch Case Funktion zu nutzen um so verschiedene HTML Seiten mit verschiedenen Anpassungen zu öffnen.
Leider funktioniert die Funktion nicht - es passiert einfach nichts.. Trotz einer Auflösung mit einer Breite von 1050 öffnet er die mit 1080.. ich finde den Fehler nicht:

Code:
<html>
<head>
<title>Arbeitssicherheit Ticker</title>
<meta charset="utf-8"> <meta name="Newsticker" content="Arbeitssicherheit">
<style type="text/css">


<script type="text/javascript">
switch(screen.width) {

	case 1080:
		window.location = "Arbeitssicherheit_Ticker_1080.html";
	break;
	case 1050:
		window.location = "Arbeitssicherheit_Ticker_1050.html";
	break;
	default:
		window.location = "Arbeitssicherheit_Ticker_1080.html";
	break;
					}
</script>



body {
      font-family:Arial;
	  color:#000;
	  font-style:normal; 
	 }
</style> 
</head>
<body background="../bilder/bg_verlauf_orange.png">
<div style="position:center;>
<table style="width:100%; border:0; margin:0;"><br>
        <marquee onmouseover="this.scrollAmount=0" onmouseout="this.scrollAmount=5">
         Das ist ein Beispiel Newsticker! Hier können z.B. Links angezeigt werden <a href="http://www.vattenfall.de/">Link-Beispiel</a> <b>Man kann auch einfach eine fette Schrift Nehmen!</b> <i>Kursive Texte funktionieren auch wunderbar</i></marquee>
</table</div>	 
</body>
</html>

Außerdem die Frage - sollte die Funktion irgendwann mal laufen.. kann man diese auch hier anwenden?:

Code:
<!doctype html>
<html> 
<head>
<meta charset="utf-8">
<meta name="keywords" content="Arbeitssicherheit">
<title>Ladeseite</title>
<script>

		function Ticker_1080() {
			var breite = parseInt(screen.width/1.01);
			var hoehe = parseInt(screen.height/10);
			var tophoehe = hoehe*1.7;
			var top = (screen.height-tophoehe);
			<!--document.getElementById('test').innerHTML = 'Bild: '+screen.width+' x '+screen.height+'<br>Popup: '+breite+' x '+hoehe;
			var params = 'width='+breite
				+',height='+hoehe
				+',top='+top
				+',left=0'
						  ;
			window.open("aufloesung/Arbeitssicherheit_Ticker_1080.html","_blank",params).focus();
						  }

						  
						  
	
		function Main() {
			var breite = parseInt(screen.width/2.1);
			var hoehe = parseInt(screen.height/3.85);
			var rechts = breite*1.08;
			var params = 'width='+breite
				+',height='+hoehe
				+',top=480'
				+',left='+rechts
						  ;
			window.open("aufloesung/Arbeitssicherheit_1920x1080.html","_blank",params);
						  }
		
		 function CloseWindow()
					  {
  window.open('','_self','');
  window.close();
					  }		
		
</script>


</head>

<body onload="Ticker_1080(); Main(); CloseWindow();">
<div id="test"></div>





 </body>
 </html>


vonwegen case 1080:
funktion Ticker_1080() {....
break;
case 1050:
funtion Ticker_1050() {...

??

Vielen dank für eure Hilfe!

Lg Schenki
 
Nun ja... Scripts gehören sich halt nicht innerhalb die <style>-Tags... ;)
Desweiteren fehlt ein <!DOCTYPE>; auch ansonsten ist das Dokument invalid (The W3C Markup Validation Service) und veraltet (HTML/Elements/marquee - W3C Wiki)...

vonwegen case 1080:
funktion Ticker_1080() {....
break;
case 1050:
funtion Ticker_1050() {...

??
Was meinst du damit? :confused:


PS:
attachment.php
 

Anhänge

  • 60136-switch-case-break-default-funktioniert-nicht.png
    60136-switch-case-break-default-funktioniert-nicht.png
    8,4 KB · Aufrufe: 19
Hast du dir mal das Ergebnis von screen.width ausgeben lassen?
Code:
console.log(screen.width);
switch(screen.width) {
...

Was soll denn der switch-Block machen, wenn das Ergebnis von screen.widht z.B. 1065 ist?

Ich würde daher empfehlen das mittels if zu machen.

PS: Dein HTML im head-Bereich ist nicht vaide!
 
Zuletzt bearbeitet:
ah ok der code war im style drin ... wie dumm von mir :) tja der kaffee war noch nicht feritg :)
habe den code jetzt richtig eingefügt, wenn er die seite lädt passiert nichts (lädt,lädt,lädt...) und irgendwann stürzt der IE9 ab.
Würde jetzt denken das es daran liegt das es eine Schleife ist und er kein Ergbeniss bekommt?!

j-l-n - ich nutze eine Index mit der 2 Seiten als Popup geöffnet werden. Die Index schließt sich dann wieder.. Das nutze ich, damit die Seiten beim öffnen direkt die vorgefertigte größen haben und gewisse Schaltflächen deaktiviert sind (für interne Zwecke in der Firma). Nun die Frage ob ich das kombinieren kann .. Wenn Auflösung X dann öffne Popup so und so... wenn Auflösung Y dann anders.

miniA4kuser:

der Switch Block soll wenn screen.width = 1050 ist die seite ticker_1050 laden. wenn 1080 dann ticker_1080 usw...
funktioniert aber irgendwie nicht :D
 
Code:
<!DOCTYPE html>
<html>
<head>
<title>Arbeitssicherheit Ticker</title>
<meta charset="utf-8"> <meta name="Newsticker" content="Arbeitssicherheit">
<script type="text/javascript">
switch(screen.availwidth) {

	case 1080:
		window.location = "Arbeitssicherheit_Ticker_1080.html";
	break;
	case 1050:
		window.location = "Arbeitssicherheit_Ticker_1050.html";
	break;
	default:
		window.location = "Arbeitssicherheit_Ticker_1080.html";
	break;
					}
</script>



<style type="text/css">
body {
      font-family:Arial;
	  color:#000;
	  font-style:normal; 
	 }
</style> 
</head>
<body background="../bilder/bg_verlauf_orange.png">
<div style="position:center;>
<table style="width:100%; border:0; margin:0;"><br>
        <marquee onmouseover="this.scrollAmount=0" onmouseout="this.scrollAmount=5">
         Das ist ein Beispiel Newsticker! Hier können z.B. Links angezeigt werden <a href="http://www.vattenfall.de/">Link-Beispiel</a> <b>Man kann auch einfach eine fette Schrift Nehmen!</b> <i>Kursive Texte funktionieren auch wunderbar</i></marquee>
</table</div>	 
</body>
</html>

das marquee veraltet und unbeliebt ist, ist mir bekannt.. bin noch auf der suche nach einem "besseren" ticker!

edit: in dem code steht noch availwidth - hatte ich ausprobiert nun wieder nur screen.width
 
Zuletzt bearbeitet:
console.log(screen.width);
switch(screen.width) {
...

passiert garnichts außer das die switch funktion nicht mehr beachtet wird..
wenn ich mit
Code:
function Ticker_1080() {
			var breite = parseInt(screen.width/1.01);
			var hoehe = parseInt(screen.height/10);
			var tophoehe = hoehe*1.7;
			var top = (screen.height-tophoehe);
			[B]document.getElementById('test').innerHTML = 'Bild: '+screen.width+' x '+screen.height+'<br>Popup: '+breite+' x '+hoehe;[/B]			var params = 'width='+breite
				+',height='+hoehe
				+',top='+top
				+',left=0'
						  ;
			window.open("aufloesung/Arbeitssicherheit_Ticker_1080.html","_blank",params).focus();
						  }

mir die Auflösung ausgeben lasse und dann die angezeigte breite in Case schreibe gleicher Fehler - "lade,lade,lade.... abstürtzen!"
 
Code:
<!DOCTYPE html>
<html>
<head>
<title>Arbeitssicherheit Ticker</title>
<meta charset="utf-8"> <meta name="Newsticker" content="Arbeitssicherheit">
<script type="text/javascript">
switch(screen.availwidth) {

	case 1080:
		window.location = "Arbeitssicherheit_Ticker_1080.html";
	break;
	case 1050:
		window.location = "Arbeitssicherheit_Ticker_1050.html";
	break;
	default:
		window.location = "Arbeitssicherheit_Ticker_1080.html";
	break;
					}
</script>



<style type="text/css">
body {
      font-family:Arial;
	  color:#000;
	  font-style:normal; 
	 }
</style> 
</head>
<body background="../bilder/bg_verlauf_orange.png">
<div style="position:center;>
<table style="width:100%; border:0; margin:0;"><br>
        <marquee onmouseover="this.scrollAmount=0" onmouseout="this.scrollAmount=5">
         Das ist ein Beispiel Newsticker! Hier können z.B. Links angezeigt werden <a onclick="_gaq.push(['_trackEvent', 'Outgoing', 'www.vattenfall.de', '/']);" href="http://www.vattenfall.de/">Link-Beispiel</a> <b>Man kann auch einfach eine fette Schrift Nehmen!</b> <i>Kursive Texte funktionieren auch wunderbar</i></marquee>
</table</div>	 
</body>
</html>
in dem code steht noch availwidth - hatte ich ausprobiert nun wieder nur screen.width
Funktioniert doch!
 
also liegt es an meinem browser? IE9 .. hängt sich immer auf.. so ein mist!

- - - Aktualisiert - - -

mal eine andere Möglichkeit..
Hier würde ich von der index die seiten mit window.open öffnen.
Ist dort ein Switch/Case möglich? Die verschiendenen Funktion zu verschachteln?

Hier meine Überlegungen(funktionieren nicht):

Code:
<!doctype html>
<html> 
<head>
<meta charset="utf-8">
<meta name="keywords" content="Arbeitssicherheit">
<title>Ladeseite</title>
<script>
function start(){
switch(screen.width) {
case 1080:
		function Ticker_1080() {
			var breite = parseInt(screen.width/1.01);
			var hoehe = parseInt(screen.height/10);
			var tophoehe = hoehe*1.7;
			var top = (screen.height-tophoehe);
			document.getElementById('test').innerHTML = 'Bild: '+screen.width+' x '+screen.height+'<br>Popup: '+breite+' x '+hoehe;
			var params = 'width='+breite
				+',height='+hoehe
				+',top='+top
				+',left=0'
						  ;
			window.open("aufloesung/Arbeitssicherheit_Ticker_1080.html","_blank",params).focus();
						  }
break;
case 1050:
function Ticker_1050() {
			var breite = parseInt(screen.width/3);
			var hoehe = parseInt(screen.height/10);
			var tophoehe = hoehe*3;
			var top = (screen.height-tophoehe);
			document.getElementById('test').innerHTML = 'Bild: '+screen.width+' x '+screen.height+'<br>Popup: '+breite+' x '+hoehe;
			var params = 'width='+breite
				+',height='+hoehe
				+',top='+top
				+',left=0'
						  ;
			window.open("aufloesung/Arbeitssicherheit_Ticker_1080.html","_blank",params).focus();
						  }
break;
default:
function Ticker_1080() {
			var breite = parseInt(screen.width/1.01);
			var hoehe = parseInt(screen.height/10);
			var tophoehe = hoehe*1.7;
			var top = (screen.height-tophoehe);
			document.getElementById('test').innerHTML = 'Bild: '+screen.width+' x '+screen.height+'<br>Popup: '+breite+' x '+hoehe;
			var params = 'width='+breite
				+',height='+hoehe
				+',top='+top
				+',left=0'
						  ;
			window.open("aufloesung/Arbeitssicherheit_Ticker_1080.html","_blank",params).focus();
						  }
break;
}}
						  
						  
	
		function Main() {
			var breite = parseInt(screen.width/2.1);
			var hoehe = parseInt(screen.height/3.85);
			var rechts = breite*1.08;
			var params = 'width='+breite
				+',height='+hoehe
				+',top=480'
				+',left='+rechts
						  ;
			window.open("aufloesung/Arbeitssicherheit_1920x1080.html","_blank",params);
						  }
		
		 /*function CloseWindow()
					  {
  window.open('','_self','');
  window.close();
					  }		*/
		
</script>


</head>

<body onload="start(); Main(); CloseWindow();">
<div id="test"></div>





 </body>
 </html>

- - - Aktualisiert - - -

habe meinen Fehler gefunden.. ich bin ein totaler idiot und hätte einfach height anstatt width nehmen sollen. und dann 877 anstatt 1050 (wurde mir so ausgespuckt) damit geht es jetzt falls jemand von google auf diese Seite stößt:

Code:
<!doctype html>
<html> 
<head>
<meta charset="utf-8">
<meta name="keywords" content="Arbeitssicherheit">
<title>Ladeseite</title>
<script>

		function Ticker() {
		switch(screen.height) {
		case 877:
			var breite = parseInt(screen.width/1.01);
			var hoehe = parseInt(screen.height/10);
			var tophoehe = hoehe*1.8;
			var top = (screen.height-tophoehe);
			document.getElementById('test').innerHTML = 'Bild: '+screen.width+' x '+screen.height+'<br>Popup: '+breite+' x '+hoehe;
			var params = 'width='+breite
				+',height='+hoehe
				+',top='+top
				+',left=0'
						  ;
			window.open("aufloesung/Arbeitssicherheit_Ticker_1050.html","_blank",params).focus();
		break;
        default:
		case 1080:
		var breite = parseInt(screen.width/1.01);
			var hoehe = parseInt(screen.height/10);
			var tophoehe = hoehe*1.7;
			var top = (screen.height-tophoehe);
			document.getElementById('test').innerHTML = 'Bild: '+screen.width+' x '+screen.height+'<br>Popup: '+breite+' x '+hoehe;
			var params = 'width='+breite
				+',height='+hoehe
				+',top='+top
				+',left=0'
						  ;
			window.open("aufloesung/Arbeitssicherheit_Ticker_1080.html","_blank",params).focus();		
		break;
						}}
					  
						  
	
		function Main() {
			var breite = parseInt(screen.width/2.1);
			var hoehe = parseInt(screen.height/3.85);
			var rechts = breite*1.08;
			var params = 'width='+breite
				+',height='+hoehe
				+',top=480'
				+',left='+rechts
						  ;
			window.open("aufloesung/Arbeitssicherheit_1920x1080.html","_blank",params);
						  }
		
		 /*function CloseWindow()
					  {
  window.open('','_self','');
  window.close();
					  }		*/
		
</script>


</head>

<body onload="Ticker(); Main(); CloseWindow();">
<div id="test"></div>





 </body>
 </html>

danke nochmal für die hilfe, wäre sonst nicht auf den weg gekommen
 
Zurück
Oben