Frank: Script

Hallo,

folgendes Script möchte ich wegen unterschiedliche Auflösungen von Browsern verwenden:

<html><head><title>Test</title>
<script type="text/javascript">
if (screen.width >= 1152) {
  window.location.href = "index.html";
} else {
  window.location.href = "1willkommen.htm";
}
</script>
</head><body>
</body></html>

Die Seite "1willkommen.html" wird bei entsprechender Voraussetzung korrekt angesprochen. Jedoch wird bei einer Auflösung von >= 1152 die Seite "index.html" nicht mehr geladen (Dauerschleife beim Ladevorgang). Was mache ich falsch? Wie muss ich o.g. Script in HTML einbauen, damit alles ordnungsgemäß funktioniert?

Für Hilfe wäre ich sehr dankbar

Frank

  1. folgendes Script möchte ich wegen unterschiedliche Auflösungen von Browsern verwenden:

    Mach sowas nicht!
    Das ist i.d.R. Unsinn.
    Damit halst du dir nur unnötige Arbeit auf.

    Struppi.

    1. folgendes Script möchte ich wegen unterschiedliche Auflösungen von Browsern verwenden:

      Mach sowas nicht!
      Das ist i.d.R. Unsinn.
      Damit halst du dir nur unnötige Arbeit auf.

      Struppi.

      Was kann ich denn alternativ machen?
      P.S. Danke für die schnelle Antwort

      1. Was kann ich denn alternativ machen?

        Mit HTML/CSS kannst du relativ gut Layouts entwickeln, die sich an das Browserfenster anpassen, egal wie gross das Fenster ist und welche Auflösung verwendet wird. Das ist die Stärke von HTML/CSS.

        Struppi.

  2. Hallo Frank.

    folgendes Script möchte ich wegen unterschiedliche Auflösungen von Browsern verwenden:

    Ich habe noch nie einen Browser gesehen, der über eine Auflösung verfügt.
    Höchstens Monitore verfügen über eine solche, aber diese ist sowieso irrelevant.

    Einen schönen Montag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
  3. Lieber Frank,

    ich stimme Struppi vollkommen zu, wenn er schreibt, dass Dein Vorhaben in der Regel Unsinn ist.

    Wenn Du es dennoch nicht lassen möchtest, dann betrachten wir einmal Deine Verzweigung genauer:

    if (screen.width >= 1152) {

    window.location.href = "index.html";
    } else {
      window.location.href = "1willkommen.htm";
    }

      
    Der Browser prüft, ob die Bildschirmauflösung in der Breite größer oder gleich 1152 ist, um daraufhin eine Datei namens "index.html" zu laden, oder aber bei Nichterfüllung der Bedingung die Datei "1willkommen.html" zu laden.  
      
    Wo steht nun dieses Script? Ich denke doch, dass es in der Index-Datei steht, die ja als erstes Deiner Webpräsenz geladen werden wird, und wo eine solche Prüfung ja gerade (weil vorher geht nicht) stattfinden soll.  
      
    Wenn jetzt Dein Script entscheidet, dass die "index.html" geladen werden soll, in welcher ebendiese Prüfung schon wieder durchgeführt wird (denn von dort kommen wir ja gerade), dann solltest Du \_zusätzlich\_ prüfen, ob wir uns schon in der "index.html" befinden, da es sonst zu einer Endlosschleife führt.  
      
    Wir müssen also unsere if-Bedingung erweitern:  
    `if (screen.width >= 1152 && window.location.[link:http://de.selfhtml.org/javascript/objekte/location.htm#pathname@title=pathname] != '/index.html' && window.location.pathname != '/')`{:.language-javascript}  
      
    Liebe Grüße aus [Ellwangen](http://www.ellwangen.de/),  
      
    Felix Riesterer.
    
    1. Hallo Felix

      Wir müssen also unsere if-Bedingung erweitern:

      Ich denke, eher verkürzen.

      if (screen.width >= 1152 && window.location.[link:http://de.selfhtml.org/javascript/objekte/location.htm#pathname@title=pathname] != '/index.html' && window.location.pathname != '/')

      Wenn wir davon ausgehen, dass sich das Script in der /index.html befindet,
      würde also _immer_ 1willkommen.htm aufgerufen.

      Das Script müsste eher so aussehen:

      if (screen.width < 1152) {  
        window.location.href = "1willkommen.htm";  
      }
      

      Auf Wiederlesen
      Detlef

      --
      - Wissen ist gut
      - Können ist besser
      - aber das Beste und Interessanteste ist der Weg dahin!
      1. Lieber Detlef,

        Das Script müsste eher so aussehen:

        if (screen.width < 1152) {

        window.location.href = "1willkommen.htm";
        }

          
        so gesehen hast Du Recht! :-) Ich hätte es einfacher haben können - stimmt. Aber ich mache ja generell eine solche Prüfung nicht, da ich versuche, meine Seiten für jeden Browser und jede Auflösung zu "optimieren". \*g\*  
          
        Liebe Grüße aus [Ellwangen](http://www.ellwangen.de/),  
          
        Felix Riesterer.
        
  4. Hi,

    folgendes Script möchte ich wegen unterschiedliche Auflösungen von Browsern verwenden:

    Es gibt mitunter durchaus Gründe, die für eine Auflösungsweiche sprechen, aber:
    1. screen.width ist absolut irrelevant - relevant ist die Größe des Browserfensters.
    2. doppelte Seiten sind absolut unnötig. Du fragst mit JS die Größe ab, also kann Du innerhalb *einer* Seite mit Hilfe von JS auch alles so machen, wie es die aktuelle Situation erfordert!

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!