Avatar billede fbisen Nybegynder
04. juli 2008 - 14:43 Der er 8 kommentarer og
1 løsning

Doctype og Javascript virker ikke sammen

Hej Eksperter.

Jeg har lavet en side, som virker perfekt i IE6 og IE7, men i Firefox 3 er det ikke så perfekt (Det virker slet ikke).

Jeg bruger doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Fjerner jeg denne doctype, virker scriptet i alle de nævnte browsere.

Koden ser ialt således ud på en testside:

-----------------test.php--------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function MoveShit()
{
    document.getElementById('Pin0').style.left = document.body.clientWidth/2-70;
}
-->
</script>
</head>

<body onLoad="MoveShit()">
<div id="Pin0" style="position:absolute; top: 268px; left: 0px; background-image:url(Images/Pin.png);background-repeat:no-repeat;border:0px solid black; padding:5; width: 57px; height: 73px;"></div>
</body>
</html>
----------------------------------------------------------

Er der nogen måde jeg kan få det til at fungere på?
Avatar billede roenving Novice
04. juli 2008 - 15:17 #1
-- hvad med at tilføje den obligatoriske enhed ?-)

... = document.body.clientWidth/2-70 + "px";

-- der er dog andre problemer, f.eks. burde document.body ikke returnere noget objekt, og .clientWidth er heller ikke defineret nogen steder i html4.01 strict DOM, men mon ikke det virker, hvis du bruger html4.01 transitional !-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Avatar billede fbisen Nybegynder
04. juli 2008 - 15:31 #2
Jeg prøver med html4.01 transitional.

Scriptet:
function MoveShit()
{
    document.getElementById('Pin0').style.left = document.body.clientWidth/2-70"px";
}
Virker ikke i FF


Scriptet:
function MoveShit()
{
    document.getElementById('Pin0').style.left = "70px";
}
Virker i FF

Er der andre måder hvorpå man kan få fat i breden?
Avatar billede fbisen Nybegynder
04. juli 2008 - 15:33 #3
Undskyld - Jeg har jo ikke skrevet + "px".

Desuden virker dette i begge browsere, selvom du skriver at strict ikke burde give document.body objekt?
-------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function MoveShit()
{
    document.getElementById('Pin0').style.left = document.body.clientWidth/2-70+"px";
}
-->
</script>
</head>

<body onLoad="MoveShit()">
<div id="Pin0" style="position:absolute; top: 268px; left: 0px; background-image:url(Images/Pin.png);background-repeat:no-repeat;border:0px solid black; padding:5; width: 57px; height: 73px;"></div>
</body>
</html>
Avatar billede roenving Novice
04. juli 2008 - 15:37 #4
Tjah, der er lavet mange underligheder gennem tiden, så browserne understøtter forskellige proprietære objekter og properties, som konkurrenterne har opfundet ...

-- får du det til at virke, så husk også lige at teste endnu flere browsere !-)
Avatar billede fbisen Nybegynder
04. juli 2008 - 15:55 #5
Jeg har gjort som du har sagt, og fået det til at virke - Så hvis du smider et svar, så tror jeg pointsne er velfortjent for det hurtige svar :)

TAK!
Avatar billede roenving Novice
04. juli 2008 - 15:57 #6
Velbekomme '-)
Avatar billede roenving Novice
04. juli 2008 - 16:21 #7
-- og tak for point ;~}
Avatar billede fbisen Nybegynder
05. juli 2008 - 13:27 #8
Hehe :) Jeg havde aldrig selv fundet ud af det, ved mindre jeg skulle lede meget af Google igennem - Så det er altid rart med sådan en side som denne, og med brugere som dig!
Avatar billede roenving Novice
05. juli 2008 - 13:37 #9
Jepz !-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester