/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Problem med ændring af CSS værdi vha javas~
Fra : Bjarke Jensen


Dato : 13-12-08 01:30

Hej Ng

Jeg er forholdsvis ny i javasammenhæng, men har kastet mig ud i at skulle
ændre et css elements height property vha javascript. Jeg ændrer højden af
"MainContent" med følgende linie:

document.getElementById("MainContent").style.height=NewHeight;

Mit problem er at det virker fint i IE, men ikke i firefox. Er der nogen der
har et bud på noget der virker i firefox?

på forhånd tak
Bjarke



 
 
Rune Jensen (12-12-2008)
Kommentar
Fra : Rune Jensen


Dato : 12-12-08 18:18

On 13 Dec., 01:30, "Bjarke Jensen" <bjas...@hotmail.com> wrote:

> Jeg er forholdsvis ny i javasammenhæng,

Ja, det er nu JavaScript, men OK;)

> men har kastet mig ud i at skulle
> ændre et css elements height property vha javascript. Jeg ændrer højden af
> "MainContent" med følgende linie:
>
> document.getElementById("MainContent").style.height=NewHeight;
>
> Mit problem er at det virker fint i IE, men ikke i firefox. Er der nogen der
> har et bud på noget der virker i firefox?

Har du prøvet at ændre den property manuelt?
Har du evt. et link til hele siden?


MVH
Rune Jensen

--
Online musictelevision
http://www.97fm.com.br/aovivo/tv/

Bjarke Jensen (13-12-2008)
Kommentar
Fra : Bjarke Jensen


Dato : 13-12-08 09:29

Hej Rune

Jeg kan ændre den direkte i css filen, hvilket virker fint, jeg har også
forsøgt at med at angive en konstant i stedet for en variabel, men det
virker heller ikke.

Jeg ved der er forskel på at hente vindustørrelsen i forskellige browsere,
hvor IE skiller sig ud fra 'alle' andre. Men dette er der taget hånd om.

Siden er denne www.jj-jukebokse.dk/nyt/bestilling.asp

JS koden er som følgende:

function Set_MainContentHeight()
{
var WinHeight = 0, NewHeight = 600;
if( typeof( window.innerWidth ) == 'number' )
{ //Non-IE
WinHeight = window.innerHeight;
}
else if( document.documentElement &&
document.documentElement.clientHeight )
{ //IE 6+ in 'standards compliant mode'
WinHeight = document.documentElement.clientHeight;
}
else if( document.body && document.body.clientHeight)
{ //IE 4 compatible
WinHeight = document.body.clientHeight;
}

NewHeight = WinHeight - 250;
//alert("Brovser = " + WinHeight + ", Main = " + NewHeight);
document.getElementById("MainContent").style.height=NewHeight;
}

Funktionen bliver kaldt 'onresize' og 'onload' af <body> i min html kode.

Håber du, eller andre kan gennemskue hvad jeg gør galt.

Mvh
Bjarke



"Rune Jensen" <runeofdenmark@gmail.com> skrev i en meddelelse
news:29e9561e-1c74-428e-90e8-3753b4616b79@u18g2000pro.googlegroups.com...
On 13 Dec., 01:30, "Bjarke Jensen" <bjas...@hotmail.com> wrote:

> Jeg er forholdsvis ny i javasammenhæng,

Ja, det er nu JavaScript, men OK;)

> men har kastet mig ud i at skulle
> ændre et css elements height property vha javascript. Jeg ændrer højden af
> "MainContent" med følgende linie:
>
> document.getElementById("MainContent").style.height=NewHeight;
>
> Mit problem er at det virker fint i IE, men ikke i firefox. Er der nogen
> der
> har et bud på noget der virker i firefox?

Har du prøvet at ændre den property manuelt?
Har du evt. et link til hele siden?


MVH
Rune Jensen

--
Online musictelevision
http://www.97fm.com.br/aovivo/tv/



Birger Sørensen (13-12-2008)
Kommentar
Fra : Birger Sørensen


Dato : 13-12-08 10:40

Bjarke Jensen skrev den 13-12-2008:
> Hej Rune
>
> Jeg kan ændre den direkte i css filen, hvilket virker fint, jeg har også
> forsøgt at med at angive en konstant i stedet for en variabel, men det virker
> heller ikke.
>
> Jeg ved der er forskel på at hente vindustørrelsen i forskellige browsere,
> hvor IE skiller sig ud fra 'alle' andre. Men dette er der taget hånd om.
>
> Siden er denne www.jj-jukebokse.dk/nyt/bestilling.asp
>
> JS koden er som følgende:
>
> function Set_MainContentHeight()
> {
> var WinHeight = 0, NewHeight = 600;
> if( typeof( window.innerWidth ) == 'number' )
> { //Non-IE
> WinHeight = window.innerHeight;
> }
> else if( document.documentElement && document.documentElement.clientHeight
> )
> { //IE 6+ in 'standards compliant mode'
> WinHeight = document.documentElement.clientHeight;
> }
> else if( document.body && document.body.clientHeight)
> { //IE 4 compatible
> WinHeight = document.body.clientHeight;
> }
>
> NewHeight = WinHeight - 250;
> //alert("Brovser = " + WinHeight + ", Main = " + NewHeight);
> document.getElementById("MainContent").style.height=NewHeight;
> }
>
> Funktionen bliver kaldt 'onresize' og 'onload' af <body> i min html kode.
>
> Håber du, eller andre kan gennemskue hvad jeg gør galt.
>

CSS højder, bredder og en masse andre attributter _skal_ have
enhedsangivelse. Det gælder også, hvis man ændrer dem fra js.
Så du kan prøve at tilføje +'px' ved de linier der sætter style...

Ellers skal man bruge pixelHeight eller offsetHeight - eller noget i
den retning.
(Det er ikke alle attributterne der skal tilgås via style - nogle af
dem er direkte tilgængelige. Sådan har det i hvert fald været..)

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Stig Johansen (13-12-2008)
Kommentar
Fra : Stig Johansen


Dato : 13-12-08 13:12

"Birger Sørensen" <sdc@bbsorensen.com> wrote in message
news:494382f7$0$90267$14726298@news.sunsite.dk...
> CSS højder, bredder og en masse andre attributter _skal_ have
> enhedsangivelse. Det gælder også, hvis man ændrer dem fra js.
> Så du kan prøve at tilføje +'px' ved de linier der sætter style...

Jeg har på et tidspunkt fedtet lidt med det det mellem IE6 og FF.
Her er en stump kode??:
if (document.all) { // IE
sparre_sel.style.posTop = ( stargate_sparre_arrayY[i] +
stargatebaseY ) ;
sparre_sel.style.posLeft = ( stargate_sparre_arrayX[i] +
stargatebaseX ) ;
} else {
sparre_sel.style.top = ( stargate_sparre_arrayY[i] +
stargatebaseY ) + 'px;' ;
sparre_sel.style.left = ( stargate_sparre_arrayX[i] +
stargatebaseX ) + 'px;' ;
}

Så vidt jeg husker skal FF have enhed på, mens IE6 ikke skal (eller vil).
Jeg har ikke IE7 (du ved - Win2000), så der kan jeg ikke udtale mig.

--
Med venlig hilsen/Best regards
Stig Johansen




Birger Sørensen (13-12-2008)
Kommentar
Fra : Birger Sørensen


Dato : 13-12-08 13:40

Stig Johansen har bragt dette til os:
> "Birger Sørensen" <sdc@bbsorensen.com> wrote in message
> news:494382f7$0$90267$14726298@news.sunsite.dk...
>> CSS højder, bredder og en masse andre attributter _skal_ have
>> enhedsangivelse. Det gælder også, hvis man ændrer dem fra js.
>> Så du kan prøve at tilføje +'px' ved de linier der sætter style...
>
> Jeg har på et tidspunkt fedtet lidt med det det mellem IE6 og FF.
> Her er en stump kode??:
> if (document.all) { // IE
> sparre_sel.style.posTop = ( stargate_sparre_arrayY[i] +
> stargatebaseY ) ;
> sparre_sel.style.posLeft = ( stargate_sparre_arrayX[i] +
> stargatebaseX ) ;
> } else {
> sparre_sel.style.top = ( stargate_sparre_arrayY[i] +
> stargatebaseY ) + 'px;' ;
> sparre_sel.style.left = ( stargate_sparre_arrayX[i] +
> stargatebaseX ) + 'px;' ;
> }
>
> Så vidt jeg husker skal FF have enhed på, mens IE6 ikke skal (eller vil).
> Jeg har ikke IE7 (du ved - Win2000), så der kan jeg ikke udtale mig.

IE7 skal have enheder med, hvis man sætter dem som i "den rigte" CSS.
Visse af de andre - posTop, offsetTop, pixelTop etc. - er defineret som
værende i pixels, og skal derfor ikke (og accepterer det heller ikke).
Er ikke sikker på, hvor mange af "de andre" eller afledede, der
egentlig er tilgængelige i andre browsere end IE.

Brugte engang den her flittigt
http://msdn.microsoft.com/en-us/library/ms530302(VS.85).aspx
kan se den er ændret...

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Stig Johansen (13-12-2008)
Kommentar
Fra : Stig Johansen


Dato : 13-12-08 13:58

Birger Sørensen wrote:

>> Jeg har på et tidspunkt fedtet lidt med det det mellem IE6 og FF.
>> Her er en stump kode??:
>> if (document.all) { // IE
>> sparre_sel.style.posTop = ( stargate_sparre_arrayY[i] +
>> stargatebaseY ) ;
>> sparre_sel.style.posLeft = ( stargate_sparre_arrayX[i] +
>> stargatebaseX ) ;
>> } else {
>> sparre_sel.style.top = ( stargate_sparre_arrayY[i] +
>> stargatebaseY ) + 'px;' ;
>> sparre_sel.style.left = ( stargate_sparre_arrayX[i] +
>> stargatebaseX ) + 'px;' ;
>> }
>>
>> Så vidt jeg husker skal FF have enhed på, mens IE6 ikke skal (eller vil).
>> Jeg har ikke IE7 (du ved - Win2000), så der kan jeg ikke udtale mig.
>
> IE7 skal have enheder med, hvis man sætter dem som i "den rigte" CSS.
> Visse af de andre - posTop, offsetTop, pixelTop etc. - er defineret som
> værende i pixels, og skal derfor ikke (og accepterer det heller ikke).

Nu klippede jeg det bare over som response, nærmest som refleks, men som du
er inde på, så hedder propertien eks. posTop i IE(6) og top i FF - ud over
det med px.

Nogle gange kan man synes det er lidt træls at 'ham der' nogensinde blev
undfanget :)

--
Med venlig hilsen
Stig Johansen

Birger Sørensen (13-12-2008)
Kommentar
Fra : Birger Sørensen


Dato : 13-12-08 18:13

Efter mange tanker skrev Stig Johansen:
> Birger Sørensen wrote:
>
>>> Jeg har på et tidspunkt fedtet lidt med det det mellem IE6 og FF.
>>> Her er en stump kode??:
>>> if (document.all) { // IE
>>> sparre_sel.style.posTop = ( stargate_sparre_arrayY[i] +
>>> stargatebaseY ) ;
>>> sparre_sel.style.posLeft = ( stargate_sparre_arrayX[i] +
>>> stargatebaseX ) ;
>>> } else {
>>> sparre_sel.style.top = ( stargate_sparre_arrayY[i] +
>>> stargatebaseY ) + 'px;' ;
>>> sparre_sel.style.left = ( stargate_sparre_arrayX[i] +
>>> stargatebaseX ) + 'px;' ;
>>> }
>>>
>>> Så vidt jeg husker skal FF have enhed på, mens IE6 ikke skal (eller vil).
>>> Jeg har ikke IE7 (du ved - Win2000), så der kan jeg ikke udtale mig.
>>
>> IE7 skal have enheder med, hvis man sætter dem som i "den rigte" CSS.
>> Visse af de andre - posTop, offsetTop, pixelTop etc. - er defineret som
>> værende i pixels, og skal derfor ikke (og accepterer det heller ikke).
>
> Nu klippede jeg det bare over som response, nærmest som refleks, men som du
> er inde på, så hedder propertien eks. posTop i IE(6) og top i FF - ud over
> det med px.
>
> Nogle gange kan man synes det er lidt træls at 'ham der' nogensinde blev
> undfanget :)

top i CSS og elm.style.top i js - det må da også funke i IE6?
Ikke at det kan undre, hvis det ikke gør - mener nu jeg har brugt det.

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



René Lønstrup (14-12-2008)
Kommentar
Fra : René Lønstrup


Dato : 14-12-08 21:01

"Birger Sørensen" <sdc@bbsorensen.com> skrev i meddelelsen
news:4943ed13$0$90273$14726298@news.sunsite.dk...
> top i CSS og elm.style.top i js - det må da også funke i IE6?
> Ikke at det kan undre, hvis det ikke gør - mener nu jeg har brugt det.

Det fungerer fint. Og IE6 skal også have "px" i enden, hvis den er sat i
strict-mode. I quirks-mode er det ikke nødvendigt (men om det er valgfrit,
eller den vil have det uden enhedsangivelse i quirks-mode, kan jeg ikke
huske.. Det er år og dage siden jeg har brugt javascript sammen med IE6 i
quirks-mode).


--
Mvh
René Lønstrup
[insert random ingenious quote here...]


Bjarke Jensen (13-12-2008)
Kommentar
Fra : Bjarke Jensen


Dato : 13-12-08 13:55

Hej Igen

Tusinde tak for hjælpen.
Jeg fik sat et +'px' på og nu funker det.

Tak for hurtig hjælp

Bjarke



"Birger Sørensen" <sdc@bbsorensen.com> skrev i en meddelelse
news:494382f7$0$90267$14726298@news.sunsite.dk...
> Bjarke Jensen skrev den 13-12-2008:
>> Hej Rune
>>
>> Jeg kan ændre den direkte i css filen, hvilket virker fint, jeg har også
>> forsøgt at med at angive en konstant i stedet for en variabel, men det
>> virker heller ikke.
>>
>> Jeg ved der er forskel på at hente vindustørrelsen i forskellige
>> browsere, hvor IE skiller sig ud fra 'alle' andre. Men dette er der taget
>> hånd om.
>>
>> Siden er denne www.jj-jukebokse.dk/nyt/bestilling.asp
>>
>> JS koden er som følgende:
>>
>> function Set_MainContentHeight()
>> {
>> var WinHeight = 0, NewHeight = 600;
>> if( typeof( window.innerWidth ) == 'number' )
>> { //Non-IE
>> WinHeight = window.innerHeight;
>> }
>> else if( document.documentElement &&
>> document.documentElement.clientHeight )
>> { //IE 6+ in 'standards compliant mode'
>> WinHeight = document.documentElement.clientHeight;
>> }
>> else if( document.body && document.body.clientHeight)
>> { //IE 4 compatible
>> WinHeight = document.body.clientHeight;
>> }
>>
>> NewHeight = WinHeight - 250;
>> //alert("Brovser = " + WinHeight + ", Main = " + NewHeight);
>> document.getElementById("MainContent").style.height=NewHeight;
>> }
>>
>> Funktionen bliver kaldt 'onresize' og 'onload' af <body> i min html kode.
>>
>> Håber du, eller andre kan gennemskue hvad jeg gør galt.
>>
>
> CSS højder, bredder og en masse andre attributter _skal_ have
> enhedsangivelse. Det gælder også, hvis man ændrer dem fra js.
> Så du kan prøve at tilføje +'px' ved de linier der sætter style...
>
> Ellers skal man bruge pixelHeight eller offsetHeight - eller noget i den
> retning.
> (Det er ikke alle attributterne der skal tilgås via style - nogle af dem
> er direkte tilgængelige. Sådan har det i hvert fald været..)
>
> Birger
>
> --
> http://varmeretter.dk - billig, sund og hurtig mad
> http://bbsorensen.dk
>
>



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste