Antworten auf deine Fragen:
Neues Thema erstellen

Bildschirmauflösung mit Javascript übergeben

andy1304

Aktives Mitglied

Hallo zusammen,

ich habe ein Script zum Auslesen der Bildschirmauflösung gefunden:

Code:
var screenW = 640, screenH = 480;
if (parseInt(navigator.appVersion)>3) {
 screenW = screen.width;
 screenH = screen.height;
}
else if (navigator.appName == "Netscape" 
    && parseInt(navigator.appVersion)==3
    && navigator.javaEnabled()
   ) 
{
 var jToolkit = java.awt.Toolkit.getDefaultToolkit();
 var jScreenSize = jToolkit.getScreenSize();
 screenW = jScreenSize.width;
 screenH = jScreenSize.height;
}

document.write(
 "Screen width = "+screenW+"<br>"
+"Screen height = "+screenH
)
Das funktioniert schon mal. Nun will ich die ausgelesene Bildschirmauflösung hier übergeben:

Code:
<script type="text/javascript"> var so = new SWFObject('http://xxxxxxxxxxxxxxxxx.swf?','pl1','735','491','8');
so.addVariable("width","735");
so.addVariable("height","491");
Habt Ihr bitte einen Tipp für mich, wie ich die Übergabe machen kann. Kenn mich in JS nicht wirklich aus. Ziel ist es, die Bildschirmauflösung auszulesen und diese an die Parameter des Players zu übergeben. Der Player soll dann bei Seitenaufruf im "Vollbildmodus" starten.

Vielen Dank schonmal.

Viele Grüße
Andy
 

pascal.k

Basinga

AW: Bildschirmauflösung mit Javascript übergeben

Du kannst mithilfe von jQuery die Browser/HTML-höhe, -breite ausgeben lassen.
Code:
$(window).width();   // returns width of browser viewport
$(document).width(); // returns width of HTML document
Quelle: .width() – jQuery API
 

fotosaugsburg

Nicht mehr ganz neu hier

AW: Bildschirmauflösung mit Javascript übergeben

Du kannst auch beim Aufruf des Browsers das script einbauen und im Script ein Return Wert zurückgeben, wenn ich mich nicht irre
 

Myhar

Hat es drauf

AW: Bildschirmauflösung mit Javascript übergeben

Genau, du musst deinen ersten Code-Block in eine Funktion packen und mittels return die Werte für Höhe & Breite übergeben lassen (zB in einem Array)
Warum du hierfür extra jQuery verwenden sollst (wie BreeshiO sagt) wenn du die Funktion schon hast ist mir schleierhaft.
Code:
<script type="text/javascript"> 
var widthHeight = deineFunktionZurHohenUndBreitenBerechnung();
var so = new SWFObject('http://xxxxxxxxxxxxxxxxx.swf?','pl1','735','491','8');
so.addVariable("width",widthHeight[0]);
so.addVariable("height",widthHeight[1]);

Das mal so als Denkanstoß :)

L. G.
 

pascal.k

Basinga

AW: Bildschirmauflösung mit Javascript übergeben

Warum du hierfür extra jQuery verwenden sollst (wie BreeshiO sagt) wenn du die Funktion schon hast ist mir schleierhaft.
War nur ne alternative Variante. Die ich persönlich einfacher und komfortabler finde. Muss er selbst entscheiden, was er macht.
 

Myhar

Hat es drauf

AW: Bildschirmauflösung mit Javascript übergeben

Das ist doch mit Kanonen auf Spatzen schießen. Ich verwende auch gerne jQuery, wenn der Einsatz auch gerechtfertigt ist. Aber nur um die Höhe und Breite auszulesen? Das ist meiner Meinung nach übertrieben und vergrößert die Größe und damit die Ladezeit der Seite nur unnötig.

L. G.
 

Myhar

Hat es drauf

AW: Bildschirmauflösung mit Javascript übergeben

Nachdem seine Funktion gerade mal ~500 Bytes hat und jQuery ~1.4kB dauert es mit jQuery doch 3 mal länger. Und auch jQuery ist nicht mehr als Javascript, es ist immer schneller die direkt in JS vorhandenen Funktionen zu nutzen als die von Bibliotheken (auch wenn der Unterschied in heutigen Browsern wohl nicht merkbar ist)
Aber das wird OT und hilft dem Threadstarter nicht wirklich. Also schönen Tag noch und l. G.
 

pascal.k

Basinga

AW: Bildschirmauflösung mit Javascript übergeben

Jo, glaube dazu muss ich auch nix mehr sagen. :D

Fazit: Myhar hat sicherlich recht, dass er sagt, dein Code läd schneller als jQuery (auch, wenn man es nicht merkt) und du kannst ihn für dein Vorhaben benutzen.
... oder, du benutzt jQuery und nutzt dieses um dein Vorhaben umzusetzen. Möglich ist beides.

Wie schon gesagt: Jeder wie er mag.
Wollte dir nur eine alternative Möglichkeit nennen.

Viel Erfolg und Greez,
BreeshiO

edit: Mir fällt grade noch ein Grund für jQuery ein. Die im jQuery enthaltenen Codes werden sicherlich an neue Browser/Systeme angepasst. Somit braucht man seine Seite nicht immer updaten/überarbeiten. Auch, wenn das warscheinlich selten vorkommt.
 
Zuletzt bearbeitet:

andy1304

Aktives Mitglied

AW: Bildschirmauflösung mit Javascript übergeben

Erst mal vielen Dank für die zahlreichen Meinungen und Hilfen. Ich werde da mal entsprechend Euren Empfehlungen weiter basteln. Ich meld mich wieder, wenn ich ein Ergenis habe - oder doch nochmal Hilfe brauche.
 

andy1304

Aktives Mitglied

AW: Bildschirmauflösung mit Javascript übergeben

So Leute, ich bin einen Schritt weiter.

Ich habe den Code in eine Funktion gepackt, das alles in den Head gelegt und bekomme per alert die korrekte Bildschirmgröße ausgegeben. Das sieht jetzt so aus:

function aufloesung()
{
var screenW = 640, screenH = 480;
if (parseInt(navigator.appVersion)>3) {
screenW = screen.width;
screenH = screen.height;
}
else if (navigator.appName == "Netscape"
&& parseInt(navigator.appVersion)==3
&& navigator.javaEnabled()
)
{
var jToolkit = java.awt.Toolkit.getDefaultToolkit();
var jScreenSize = jToolkit.getScreenSize();
screenW = jScreenSize.width;
screenH = jScreenSize.height;
}

alert(
"Screen width = "+screenW+"<br>"
+"Screen height = "+screenH
)
}
@ Myahr: Bei der Übergabe an ein array komm ich irgendwie nicht weiter. Hab schon ne Menge versucht, leider noch kein brauchbares Ergebniss erziehlt. Kannst Du mir bitte noch einen Tipp geben? Meine Javascript-Kenntnisse reichen da irgendwie nicht aus.

In den Params des Players ruf ich dann die Werte aus dem array auf? Ist das so richtig?
so.addVariable("width",widthHeight[0]);

LG Andy
 

Myhar

Hat es drauf

AW: Bildschirmauflösung mit Javascript übergeben

ein Array in JS kann man folgendermaßen erstellen:

Code:
var einVariablennameDeinerWahl = new Array();

einVariablennameDeinerWahl[0] = jSreenSize.width;
einVariablennameDeinerWahl[1] = jScreenSize.height;

geändert, dann hast du ein Array.
dann kannst du mit return einVariablennameDeinerWahl; die Variable von deiner Funktion zurückgeben und dann dementsprechend ansprechen.
du kannst danach also zB widthHeight = aufloesung(); aufrufen und kannst dann mit widthHeight[0] und widthHeight[1] auf Höhe und Breite zugreifen.

L. G.
 

andy1304

Aktives Mitglied

AW: Bildschirmauflösung mit Javascript übergeben

Hallo Myhar,

danke für deine bisherige Hilfe. Das hat mich schon viel weiter gebracht. Ich habe jetzt folgendes:

Code:
<script type="text/javascript"  language="JavaScript">

function aufloesung()
{
var screenW = 640, screenH = 480;
if (parseInt(navigator.appVersion)>3) {
 screenW = screen.width;
 screenH = screen.height;
}
else if (navigator.appName == "Netscape" 
    && parseInt(navigator.appVersion)==3
    && navigator.javaEnabled()
   ) 
{
 var jToolkit = java.awt.Toolkit.getDefaultToolkit();
 var jScreenSize = jToolkit.getScreenSize();
 screenW = jScreenSize.width;
 screenH = jScreenSize.height;
 
 var xxx = new Array();
xxx[0] = jSreenSize.width;
xxx[1] = jScreenSize.height;
}
return xxx;
}
 </script>
In den Params für den Player setze ich die Werte so:

Code:
<script type="text/javascript"> 
var widthHeight = aufloesung();
var so = new SWFObject('http://xxxxxxxxxxxxxxxxxxxxxx.swf?','pl1','widthHeight[0]','widthHeight[1]','8');
so.addVariable("width",'widthHeight[0]');
so.addVariable("height",'widthHeight[1]');
Im FF wird der Player zwar angezeigt, aber nur in der Größe von 200 x 240px, im IE gibt´s nur eine leere Seite, keinen Player. Da schein die Übergabe der ausgelesenen Werte noch nicht zu stimmen. Die Bildschirmauflösung ist 1680x1050. In dieser Größe müsste der Player jetzt angezeigt werden.

Hast Du noch eine Idee, an was das liegen könnte?

Danke im voraus und LG Andy
 

SineTempore

Nicht mehr ganz neu hier

AW: Bildschirmauflösung mit Javascript übergeben

Code:
so.addVariable("width",'widthHeight[0]');
du übergibst damit den string widthHeight[0] allerdings nicht den wert.
versuchs mal wenn du die anführungszeichen weglässt.
bsp:
Code:
so.addVariable("width", widthHeight[0]);
 

andy1304

Aktives Mitglied

AW: Bildschirmauflösung mit Javascript übergeben

Das hilft leider auch nicht. Hatte ich schon probiert. Da bekomme ich eine Fehlermeldung: " '.widthHeight.0' ist Null oder kein Objekt".
 

SineTempore

Nicht mehr ganz neu hier

AW: Bildschirmauflösung mit Javascript übergeben

hast du schon alert(widthHeight[0]); ausprobiert? geht das auch nicht? füge das mal nach var widthHeight = aufloesung(); ein. was kommt in dem alert fenster?
 

andy1304

Aktives Mitglied

AW: Bildschirmauflösung mit Javascript übergeben

Das alert Fenster wird nicht angezeigt. Im IE gibt es die gleiche Fehlermeldung: " '.widthHeight.0' ist Null oder kein Objekt". Diesmal bezogen auf die Zeile in welcher:
alert(widthHeight[0]);
steht. Sieht so aus, als würde gar kein Wert übergeben. Allerdings ist die Funktion gelaufen. Hab ich mit alert getestet, die Ausgabe war korrekt.
 

Myhar

Hat es drauf

AW: Bildschirmauflösung mit Javascript übergeben

' ist Null oder kein Objekt deutet eigentlich darauf hin, dass eine Variable nicht richtig angelegt wurde bzw. ihr kein Wert zugewiesen ist.

Code:
var widthHeight = aufloesung();
Setze hier einmal mit Firebug einen Breakpoint, dann lad die Seite neu und gehe sie Schritt für Schritt durch.
In dem überwachen-Teil (rechts im Skript-Tab) siehst du auch immer, welchen Wert welche Variable hat. Und wenn du während des Debuggens den Namen einer Variable in die Konsole eingibst dann wird dir der momentane Wert derselben angezeigt.
Also vom Prinzip her sollte deine Funktion und Herangehensweise passen, den jetzigen Fehler findest du also am Besten mit Firebug (oder dergleichen)

L. G.
 

andy1304

Aktives Mitglied

AW: Bildschirmauflösung mit Javascript übergeben

Danke für den Tipp. Hab das gerade getestet. Also, die einzigen Werte, die ich angezeigt bekomme sind
screen.width; screen.height;
Da wird auch der korrekte Wert angezeigt. Bei allen anderen wird "ReferenceError: ... is not defined" ausgegeben.
 

Myhar

Hat es drauf

AW: Bildschirmauflösung mit Javascript übergeben

Einen schönen Wochenbeginn. :)

Code:
function aufloesung()
{
 var xxx = new Array();
var screenW = 640, screenH = 480;
if (parseInt(navigator.appVersion)>3) {
 xxx[0] = screen.width;
 xxx[1] = screen.height;
}
else if (navigator.appName == "Netscape" 
    && parseInt(navigator.appVersion)==3
    && navigator.javaEnabled()
   ) 
{
 var jToolkit = java.awt.Toolkit.getDefaultToolkit();
 var jScreenSize = jToolkit.getScreenSize();
 xxx[0] = jScreenSize.width;
 xxx[1] = jScreenSize.height;
}
return xxx;
}

Versuch mal deine Funktion folgendermaßen umzubauen. Du übergibst den Wert für das Array nur im else-Teil deiner Funktion (und definierst die Variable auch nur dort? )
Wenn also der if-teil ausgeführt wird, dann ist es logisch dass die Variable nicht existiert, da sie nicht definiert wurde. Hilft das weiter?

L. G.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben