qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst So 14.07.2013 12:09
Titel Javascript: Problem mit Event 'onorientationchange' |
|
|
In einem Testprogramm bzw. auf einer Testseite möchte ich nach einem Bildschirmdreh (Smartphone oder Tablet) die Webseite in einer veränderten Aufteilung darstellen Dazu habe ich in Body-Onload einen Eventlistener installiert:
Code: | <body onload="window.addEventListener('onorientationchange', cinfo());"> |
Da es ein Testprogramm ist, zeigt die Funktion cinfo() zunächst eine Alertbox und lädt dann die Seite neu. Blöderweise gerate ich hier völlig unerwartet in eine Endlosschleife, d.h. die Alertbox wird nun permanent angezeigt und die Seite neu geladen. Auch das Entfernen der Alertbox brachte keine Lösung, die Seite lädt nun so schnell es der Server hergibt ... ???
Dann hielt ich mich für schlau und habe den Eventlistener einmalig per setTimeout erst eine Sekunde nach Onload aktiviert - selbiges Problem. Gibts da einen anderen Trick?
Code: | <body onload="activate_listener();"> | da drinnen steht dann
Code: | function activate_listener(){window.addEventListener('onorientationchange', cinfo());} |
Achja: Schreiben und Testen tue ich zunächst auf dem Macbook mit Editra und Firefox, bis zum iPhone bin ich noch garnicht gekommen, hat ja auch keinen Sinn im aktuellen Stadium.
Zuletzt bearbeitet von qualidat am So 14.07.2013 12:27, insgesamt 1-mal bearbeitet
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Mo 15.07.2013 06:00
Titel
|
|
|
Das Problem ist, das "cinfo()" nicht die funktion cinfo als EventListener bindet, sondern den Return-wert von cinfo()
Also muss du entweder hingehen cinfo statt cinfo(), oder aber um dich im scope nicht zu verlaufen, eine anonyme funktiontion als eventlistener binden, die dann cinfo() auf deinem jeweiligen scope aufruft.
|
|