[opera 6] resizing met DHTML & Javascript (**solved**)

Pagina: 1
Acties:

  • fraek25
  • Registratie: Mei 2000
  • Laatst online: 30-12-2022
Beste mensen,

Ik heb de afgelopen dagen heel veel problemen gehad met problemen met Opera 6 (win) bij het resizen van de browser. Ik had in m'n pagina een dynamisch element dat werd gevuld met javascript (menuutje namelijk) Telkens als ik het scherm resizede (lekker nederlands woord ja), verdween namelijk de inhoud van de Div.

Wat bleek:
- onResize event in de body werkt niet in opera.
- Reflow van pagina's in opera 6 is buggy.
- Events worden niet volledig ondersteund in opera 6
- Dynamic creation van objecten in het document levert problemen op in opera 6.

Oplossing:
Ik heb uiteindelijk iets gebouwd dat dus lijkt op een eigen event manager waar ik daarna een soort resize event van check. Alles helaas zelf moeten schrijven in javascript. Hopelijk helpt het jullie iets want ik kon niets goeds vinden wat het voor mij oploste. Mochten er betere oplossingen zijn (voor NS4+, IE4+, OP4+ alles WIN/MAC) dan hoor ik het natuurlijk graag.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<script language="JavaScript">

var origH=window.innerHeight;
var origW=window.innerWidth;
var newWNow;
var newWPrevious;
var newHNow;
var newHPrevious;
var cccl;
var cwrl;
var i = 1;

window.onload = startupstuff;

function startupstuff() {
    bw = new lib_bwcheck();
    if(bw.opera6) {
        origH=window.innerHeight;
        origW=window.innerWidth;
        createCoordinateCheckerLoop();
        createWindowResizerLoop();
    }
}


function createCoordinateCheckerLoop() {
    cccl = setInterval("CoordinateChecker()", 200);
}

function createWindowResizerLoop() {
    cwrl = setInterval("windowResizerLoop()", 500);
}


function windowResizerLoop() {
    if(newWNow == newWPrevious && newHNow == newHPrevious) {
        if(newWNow != origW || newHNow != origH) {
            origW = window.innerWidth;
            origH = window.innerHeight;
            newWNow = window.innerWidth;
            newHNow = window.innerHeight;
            newWPrevious = window.innerWidth;
            newHPrevious = window.innerHeight;
            window.location.reload();
        }
    } else {
        newWPrevious = window.innerWidth;
        newHPrevious = window.innerHeight;
    }
}


function CoordinateChecker() {
    newWNow = window.innerWidth;
    newHNow = window.innerHeight;
}

</script>


Dit plaats je in de head sectie en dan zou het moeten werken :)

Andere scripts deden het telkens maar 1 maal. De alert blijkt trouwens een interessant ding te zijn voor een enkele loop waardoor het script altijd lijkt te werken totdat je de alert eruit haalt

[ Voor 8% gewijzigd door fraek25 op 20-02-2003 17:05 ]

The end of the DPC is upon us....so get up! forget the past..


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:19

crisp

Devver

Pixelated

Leuk dat je dit met ons wilt delen, maar zeker nu Opera 7 al uit is (en het is al een niche browser) zou ik me absoluut niet meer druk maken om Opera 6...

Intentionally left blank


  • fraek25
  • Registratie: Mei 2000
  • Laatst online: 30-12-2022
crisp schreef op 20 februari 2003 @ 17:13:
Leuk dat je dit met ons wilt delen, maar zeker nu Opera 7 al uit is (en het is al een niche browser) zou ik me absoluut niet meer druk maken om Opera 6...
Klopt helemaal maar vertel dat maar aan de klant die ook Opera 6 wil ondersteunen dan :)

The end of the DPC is upon us....so get up! forget the past..


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:19

crisp

Devver

Pixelated

fraek schreef op 20 February 2003 @ 17:15:
[...]


Klopt helemaal maar vertel dat maar aan de klant die ook Opera 6 wil ondersteunen dan :)
Dan vertel je hem gewoon dat hij alles wat interactief of dynamisch is dan ook op zijn buik kan schrijven ;)

Intentionally left blank


  • fraek25
  • Registratie: Mei 2000
  • Laatst online: 30-12-2022
crisp schreef op 20 February 2003 @ 17:17:
Dan vertel je hem gewoon dat hij alles wat interactief of dynamisch is dan ook op zijn buik kan schrijven ;)
Helaas, om het makkelijker te maken, wil de klant geen concessies doen aan de pagina op de verschillende browsers behalve kleine layout verschillen. whoami?

The end of the DPC is upon us....so get up! forget the past..


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:19

crisp

Devver

Pixelated

Dynamic creation van objecten in het document levert problemen op in opera 6.
Dat heb ik zelf altijd (als DHTML-ert) als het grootste manko van Opera 6 ervaren; het is een statische render engine, wat wil zeggen dat alles wat je dynamisch wilt aanpassen in eerste instantie al op de pagina aanwezig moet zijn.
Zelfs met Opera 7 moet ik vaak nog om bugs en onvolkomenheden heen scripten (bug in innerHTML, geen mogelijkheid computed styles op te vragen, support voor createDocument ontbreekt).

Al met al voor mij geen browser om ten alle tijden rekening mee te houden. Maar ja, de klant is koning - en zolang er betaald wordt... (hoewel ik het alleen als hobbie doe, dus uiteraard wel vrij ben in mijn keuzes) :)

Intentionally left blank


Verwijderd

fraek schreef op 20 February 2003 @ 17:22:Helaas, om het makkelijker te maken, wil de klant geen concessies doen aan de pagina op de verschillende browsers behalve kleine layout verschillen. whoami?
Jij bent de uitvoerende techneut die voor de klant bepaalt wat wel en niet mogelijk is. Als de klant geen concessies wil doen voor verouderde browsers (zoals Opera 6, Netscape 4.x of nog ouder) dan wordt het domein van technische mogelijkheden gewoon veel kleiner. Bovendien wordt de ontwikkeltijd langer wegens toenemende browser-incompatibiliteiten.

Eventueel kan de volgende tekst de klant overtuigen:
http://www.webstandards.org/about/mission/nl/

  • fraek25
  • Registratie: Mei 2000
  • Laatst online: 30-12-2022
Bij de projecten die ik doe is de uitvoerende techneut niet diegene die bepaalt wat wel en niet mogelijk is. De techneut kan slechts een adviserende en uitvoerende rol spelen; Geen bepalende.

Ik heb inderdaad de WaSP al gevonden en er zijn nog vele andere links op het internet die hetzelfde verkondigen. Aangezien ik geen beslissende rol speel, kan ik dit slecht aannemen en ermee proberen om te gaan. (helaas)

The end of the DPC is upon us....so get up! forget the past..

Pagina: 1