Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Screenermittlung per JS - Was mache ich falsch?

Screenermittlung per JS - Was mache ich falsch?

vetterjack
vetterjack14.05.0920:23
Hey
Da ich die Website für jeden Bildschirm gerecht machen will, habe ich mir eine Javascript Funktion erstellt, welche die Breite ermittelt und dann den User auf die richtige Seite mit der richtigen Auflösung schickt.
Doch es funktioniert leider nicht, das Buch, in dem ich es gefunden habe, ist leider schon ein paar Jahre alt. Erkennen das die Browser nicht mehr?
<script language=text/javascript>
function bildschirm(){
var hoehe, breite;
hoehe=screen.heigh;
breite=screen.width;
// Netbookscreen
if (Breite>600 & breite<700)
{
location.href="http://mactouch.eu/flow/netbook.html";}

// MacBook 13"-Screen
if (Breite>700 & breite<900)
{
location.href="http://mactouch.eu/flow/macbook.html";}

// MacBook 17"-Screen
if (Breite>900 & breite<1100)
{
location.href="http://mactouch.eu/flow/macbookpro.html";}

// Cinemadisplayscreen
if (Breite>1100 & breite<1400)
{
location.href="http://mactouch.eu/flow/cinema.html";}

}
</script>
0

Kommentare

dreyfus14.05.0921:14

Also in der 4ten Zeile solltest Du screen.height und nicht screen.heigh benutzen, vielleicht steigt die Funktion da schon aus. Ansonsten variierst Du beständig die Schreibweise von breite/Breite und die Pixelzahlen kommen mir etwas komisch vor... ein 13" MacBook bspw. hat 1280 Pixel in der Breite, Du verlinkst aber nur auf das MacBook, wenn es zwischen 701 und 899 Pixel breit ist... das kann kaum gehen. Außerdem musst Du die Funktion natürlich auch aufrufen... in body onLoad oder so...
0
der schneyra
der schneyra14.05.0921:31
Was mache ich falsch?
Ne JS-Weiche überhaupt benutzen? Meine 2 Cent.

Ansonsten hat dreyfus schon recht: Tippfehler berichtigen und das Script aufrufen nicht vergessen! Nen gescheiten JS-Debugger suche ich übrigens auch noch. Falls jemand einen kennt: Her damit!
„BAM!“
0
_mäuschen
_mäuschen14.05.0921:37

Etwa so

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
        <script language=text/javascript>
<!--
                function bildschirm(){
                var hoehe, breite;
                hoehe=screen.height;
                breite=screen.width;
// Netbookscreen
                if (breite>600 & breite<700)
{
location.href="http://mactouch.eu/flow/netbook.html";}

// MacBook 13"-Screen
                if (breite>700 & breite<900)
{
location.href="http://mactouch.eu/flow/macbook.html";}

// MacBook 17"-Screen
                if (breite>900 & breite<1100)
{
location.href="http://mactouch.eu/flow/macbookpro.html";}

// Cinemadisplayscreen
                if (breite>1100 & breite<1400)
{
location.href="http://mactouch.eu/flow/cinema.html";}

}
//-->
        </script>
        <head>
                <title></title>
        </head>
        <body onload="bildschirm()">

        </body>
</html>
mit Taco HTML Editor



screenwerte wiedreyfus sagt, anpassen

0
Svein14.05.0921:53
Ich würde mir mal Firebug unter Firefox installieren, falls du dies noch nicht gemacht hast, ohne den kann man eigentlich gar keine Homepage machen...
0
Muty14.05.0922:09
Ich bin mir gerade nicht sicher, aber über Java musst du um eine UND-Verknüpfung zu erreichen statt "&" ein "&&" benutzen!
0
dreyfus14.05.0922:16
Muty: Da hast Du allerdings völlig recht, für ein logisches UND braucht man "&&"...
0
vetterjack
vetterjack15.05.0916:14
So, ich habe es jetzt geändert, aber funktionieren tut es immer noch nicht
<script language=text/javascript>
function bildschirm(){
                var hoehe, breite;
                hoehe=screen.height;
                breite=screen.width;
// Netbookscreen
                if (breite>800 && breite<1024)
{
location.href="http://mactouch.eu/flow/netbook.html";}

// MacBook 13"-Screen
                if (breite>1024 && breite<1280)
{
location.href="http://mactouch.eu/flow/macbook.html";}

// MacBook 17"-Screen
                if (breite>1280 && breite<1440)
{
location.href="http://mactouch.eu/flow/macbookpro.html";}

// Cinemadisplayscreen
                if (breite>1440 && breite<1920)
{
location.href="http://mactouch.eu/flow/cinema.html";}


</script>
0
thr33face15.05.0916:31
am bsp. 'macbook 13" screen':

du schreibst 'if (breite>1024 && breite<1280)'

die bedingung trifft nur zu, falls die auflösung zwischen 1025 und 1279 pixel in der breite ist.

pass entweder die pixelzahlen an oder baue ein größer/kleiner gleich ein.


generell: machst du die abfrage um den content angepasst an den bildschirm darzustellen? ist der content ansonsten der gleiche oder variiert dieser je nacj computermodell?

falls es nur um die darstellung geht, find ich das kriterium bildschirmauflösung nicht sehr gut, da man ja durchaus auch auf einem 2560x1200 display das browserfenster so klein haben kann wie auf einem 1280x800 schirm
0
_mäuschen
_mäuschen15.05.0917:24

breite<=1024
breite<=1280
breite<=1440
breite<=1920

kleiner gleich wert

     <        =       wert


plus

<body onload= bildschirm()>



NB

0
vetterjack
vetterjack15.05.0918:16
thr33face
am bsp. 'macbook 13" screen':

du schreibst 'if (breite>1024 && breite<1280)'

die bedingung trifft nur zu, falls die auflösung zwischen 1025 und 1279 pixel in der breite ist.

pass entweder die pixelzahlen an oder baue ein größer/kleiner gleich ein.


generell: machst du die abfrage um den content angepasst an den bildschirm darzustellen? ist der content ansonsten der gleiche oder variiert dieser je nacj computermodell?

falls es nur um die darstellung geht, find ich das kriterium bildschirmauflösung nicht sehr gut, da man ja durchaus auch auf einem 2560x1200 display das browserfenster so klein haben kann wie auf einem 1280x800 schirm

Weil es ja heut Bildschirme von 10"-30" gibt, muss ich den Coverflow der seite auch anpassen, sonst sieht man auf einem 13" MacBook nur die hälfte und muss die ganze Zeit scrollen.
Kann man den die "-Angabe abfragen?
_mäuschen
breite<=1024
breite<=1280
breite<=1440
breite<=1920

kleiner gleich wert

     <        =       wert


plus

<body onload= bildschirm()>



NB

Das mit dem Body-onload ist mir klar

0
_mäuschen
_mäuschen15.05.0918:44

screen ist nicht gleich browser window

0
sram
sram15.05.0918:46
Was ist wenn JS deaktiviert ist?
„Auf Weisung eines Administrators musste diese Signatur entfernt werden“
0
thr33face15.05.0918:53
vetterjack
Weil es ja heut Bildschirme von 10"-30" gibt, muss ich den Coverflow der seite auch anpassen, sonst sieht man auf einem 13" MacBook nur die hälfte und muss die ganze Zeit scrollen.

ah, da hätt ich diese idee:

du könntest allerdings auch mit relativen werten arbeiten, womit das coverflow ding immer an die fenstergröße angepasst wird.

also zb: das gesamte ding soll 100% breit sein, ein icon soll 20% davon sein, etc.

das erlaubt dann nämlich auch die korrekte anzeige bei nicht maximiertem browserfenster.

da ich allerdings kein ahnung hab, wie du das derzeit realisiert hast, weiß ich nicht mit wieviel aufwand das umschreiben verbunden wäre.
0
vetterjack
vetterjack15.05.0920:35
Naja, der Coverflow ist Flash und ich habe mir nicht die Arbeit gemacht in selber zu programmieren, sondern verwende "BannerZest Pro"
0
Knork15.05.0921:25
Was machst du mit Fenstern, die weniger als 600 oder mehr als 1920 Pixel breit sind?

Blue Screen?

Kernel Panic?


Irgendwie fehlen da die else-Zweige für die Ausnahmen.
0
Esäk
Esäk15.05.0921:36
Ui, das ist Nachhilfe auf dem Niveau von Fläschchen geben. Sehr nett, aber das Baby könnte vielleicht auch selbst mal probieren, wie Karotten und Ähnliches so schmecken.
„Die Todesstrafe gehört auch in Hessen abgeschafft!“
0
chill
chill15.05.0921:49
(esäk hat richtig gute laune heute. erst der arme wicht der von ihm genötigt wird seine daten in dem "macbook für 800 euro?" thread zu veröffentlichen ... und dann das dumme angefahre von vetterjack hier. vielleicht mal ne freundin suchen, so als tip zur mentalen entschlackung?)
„MBP M1 256/16 Monterey 12.1 . iPhone 11 128 GB, iOs 15.2“
0
_mäuschen
_mäuschen15.05.0922:37



                                           ( TTRRRRÖÖÖÖÖÖÖTTTTHHHHH )


0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.