[JS + Opera] Image resize bij bepaalde resolutie

Pagina: 1
Acties:

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Hoi,

Ik probeer een image te resizen mocht de resolutie van de client kleiner zijn dan 1024x786. Werkt allemaal prima in Mozilla 1.1 en IE 6 met de volgende code:
HTML:
1
[img]"/Images/SplashLogo.jpg"[/img]

voor de image zelf.
en het bijbehorende javascript:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
function ResizeImg( inImg)
{
    if( (self.screen.width >= 1024) && (self.screen.height >= 768))
    {
        inImg.width = '664';
        inImg.height = '504';
    }
    else
    {
        inImg.width = '450';
        inImg.height = '350';
    }
}

Zoals ik zei, werkt prima op IE en Mozilla. De originele image is 664x504, en ik heb de hoogte en breedte dus niet gespecificeerd in de image, aangezien deze toch worden geset door het script.
Nu is het probleem dat Opera dit helemaal niet leuk vindt, en ik denk dat het door de cache komt, weet ik alleen niet zeker. Opera pakt de originele size, aangezien deze niet was gespecificeerd en negeert, zo lijkt het, het script. Echter, wanneer je het window resized in Opera (dus van gemaximaliseerd naar wat kleiners), dan krijgt de image wel de goede dimenties, maar bij de properties staan nog steeds de originele dimensies en bij een reload van de pagina is de image ook weer vrolijk naar originele grootte gegaan.
Ik probeer caching tegen te gaan door middel van zowel Pragma: no-cache en Expires: 0 ... dat mocht echter niet baten.
Is dit gewoon een soort van bug in Opera, of doe ik het fout? Zo niet, kan ik dit met een workaround oplossen??

-Edit-
't zal wel iets met cache zijn, als ik namelijk voor reload image kies, dan wordt 'ie wel goed weergegeven.. :/ Heb alleen geen idee hoe ik dat zou moeten oplossen?

[ Voor 0% gewijzigd door ^Mo^ op 13-10-2002 18:47 . Reden: tiepvautje opgelost ;) ]

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Lijkt me een van de vele Opera bugs.

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Bosmonster schreef op 13 oktober 2002 @ 19:00:
Lijkt me een van de vele Opera bugs.
Humm.. lekker dan :/ 'k heb het nu maar anders gedaan. Nu schrijf ik die image tag met document.write, had 't liever anders, maarja

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


Verwijderd

Om caching compleet tegen te gaan moet je een random nummer meegeven. Iets als:

document.write('[img]"/Images/SplashLogo.jpg?'+Math.random()+'"[/img]');

  • edie
  • Registratie: Februari 2002
  • Laatst online: 10:18
Bosmonster schreef op 13 oktober 2002 @ 19:00:
Lijkt me een van de vele Opera bugs.
IE heeft meer bugs... :X


http://www.opera.com/docs/specs/js/
Staat hij gewoon in.

http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.2
Ik zie geen onload attribuut staan bij het IMG element :+

"In America, consumption equals jobs. In these days, banks aren't lending us the money we need to buy the things we don't need to create the jobs we need to pay back the loans we can't afford." - Stephen Colbert


  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
eddie19 schreef op 14 oktober 2002 @ 20:18:
[...]

IE heeft meer bugs... :X


http://www.opera.com/docs/specs/js/
Staat hij gewoon in.

http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.2
Ik zie geen onload attribuut staan bij het IMG element :+
Dit komt uit de jsref van netscape:
JavaScript:
1
2
<IMG NAME="animation" SRC="image1.gif" ALT="[Animation]"
   onLoad="setTimeout('animate()', delay)">

En uit een ander deel van deze reference:
onLoad
Executes JavaScript code when a load event occurs; that is, when the browser finishes loading a window or all frames within a FRAMESET tag.

Event handler for Image, Layer, Window
Dus 't is er wel :) En 't werkt ook wel, alleen niet helemaal op Opera ;)

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • vargo
  • Registratie: Januari 2001
  • Laatst online: 25-08 17:18
Waarom doe je dit niet serversided?
Identificeer daar de browser en resolutie en op basis daarvan stuur je een andere afbeelding...

Verwijderd

vargo schreef op 15 oktober 2002 @ 11:51:
Waarom doe je dit niet serversided?
Identificeer daar de browser en resolutie en op basis daarvan stuur je een andere afbeelding...
Browser identificeren kan. Maar resolutie wordt niet mee gegeven in de servervariabelen.
Pagina: 1