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

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Doc typer og JavaScript konflikt??
Fra : jnm


Dato : 31-10-05 18:03

Jeg har prøvet med forskellige doc type declarationer som f.eks.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Jeg har også prøvet med:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
men det betyder, at mit JavaScript ikke fungere.
Når jeg prøver at validere min side får jeg den melding at jeg bruger
kommandoer, som ikke er en del af det erklærede sprog.
Det går galt med onResize og onScroll som tilsyneladende er noget Window
krams.
Hvis jeg fjerne deklarationen i toppen af min side, så kører den fint.
Prøv at se på
http://www.mqmanagement.dk/eksperimenter/test.htm
Hvordan kan jeg lave den funktion uden at udnytte illegale kommandoer, eller
findes der en anden gyldig doc type, som jeg kan anvende??
På forhånd tak
Jørgen




 
 
Jeppe Høiby (31-10-2005)
Kommentar
Fra : Jeppe Høiby


Dato : 31-10-05 18:44

jnm wrote:
> Jeg har prøvet med forskellige doc type declarationer som f.eks.
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> Jeg har også prøvet med:
> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
> "http://www.w3.org/TR/html4/loose.dtd">
> men det betyder, at mit JavaScript ikke fungere.
> Når jeg prøver at validere min side får jeg den melding at jeg bruger
> kommandoer, som ikke er en del af det erklærede sprog.

Error Line 11 column 29: required attribute "type" not specified.

Prøv at ændre:
<script language="JavaScript">
til:
<script type="text/javascript">



Error Line 17 column 51: end tag for "meta" omitted, but OMITTAG NO was
specified.

Prøv at ændre:
<meta name="Microsoft Border" content="b, default">
til:
<meta name="Microsoft Border" content="b, default" />
Eller slet elementet - det må være noget FP-hejs, som jeg ikke ved hvad
bruges til. Måske internt i FP?



Info Line 17 column 0: start tag was here.

Samme som ovenfor.



Error Line 20 column 13: there is no attribute "onLoad".

Prøv at ændre:
<body onLoad="SetCorners()" onResize="SetCorners()"
onScroll="SetCorners()"><!--
til:
<body onload="SetCorners()" onresize="SetCorners()"
onscroll="SetCorners()"><!--



Error Line 20 column 37: there is no attribute "onResize".

Som ovenfor.



Error Line 20 column 61: there is no attribute "onScroll".

Som ovenfor.



> Det går galt med onResize og onScroll som tilsyneladende er noget Window
> krams.

De er deprecated i XHTML.

> Hvis jeg fjerne deklarationen i toppen af min side, så kører den fint.
> Prøv at se på

Men så kører du i quirks-mode.

> http://www.mqmanagement.dk/eksperimenter/test.htm
> Hvordan kan jeg lave den funktion uden at udnytte illegale kommandoer, eller
> findes der en anden gyldig doc type, som jeg kan anvende??

Måske kan du lave den med CSS? Lige som en fixed menu. Så slipper du for
at bruge JS. Du kan også blot lave et anmindeligt <a> element.

--
Med venlig hilsen
Jeppe Høiby
Web-udvikler
<http://awake.dk/>

Jens Gyldenkærne Cla~ (31-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 31-10-05 23:30

Jeppe Høiby skrev:

>> Det går galt med onResize og onScroll som tilsyneladende er
>> noget Window krams.
>
> De er deprecated i XHTML.

Nej - de har aldrig været med i en officiel standard.

Se evt.
<http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.3>
og
<http://msdn.microsoft.com/workshop/author/dhtml/reference/events/onresize.asp>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

jnm (01-11-2005)
Kommentar
Fra : jnm


Dato : 01-11-05 08:56


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse

> > De er deprecated i XHTML.
>
> Nej - de har aldrig været med i en officiel standard.
>
Jeg har fået den samme opfattelse ved at studere rapporten fra valideringen.

Det er blot en skam. Funktionen er enkel og virker fint, som det ses på den
ene af mine testsider, der ikke har en doktype angivet i toppen.

Der hvor jeg indtil nu har brugt funktionen har det været officiel politik
at anvende MS Windows og MS Officepakken på Intranettet. Der har altså
aldrig været problemer med den "Special funktion". Men tiderne skifter, og
virksomheden vokser ud over alle grænser med adgang til Intranettet fra
andre virksomheder, der ikke er underlagt politikken om kun at anvende MS
produkter.

Jeg har derfor brug for at lave en tilsvarende funktion i validerbar ?HTML
og CSS. Nogen gode forslag til hvilken vej.?????

Hvilken Doc type bør jeg satse på generelt, hvis jeg skal se lidt fremad
samtidig med, at jeg gerne vil anvende MS Frontpage af de politikse
grunde???

mvh
Jørgen



Jens Gyldenkærne Cla~ (01-11-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 01-11-05 11:00

jnm skrev:

> Det er blot en skam. Funktionen er enkel og virker fint, som
> det ses på den ene af mine testsider, der ikke har en doktype
> angivet i toppen.

Du kan formentlig godt få funktionen til at virke i standardmode -
selv om onresize/onscroll ikke kan valideres.

I øjeblikket skriver du:

LR.style.left = document.body.scrollLeft +
   document.body.clientWidth - LR.width;

- det giver advarsler i quirksmode og det virker ikke i
standardmode, fordi du tilgår et element som om det var en
variabel. LR har ikke nogen standardiseret betydning i javascript,
og hvis du vil henvise til elementet med id="LR" skal du bruge
document.getElementById("LR") i stedet for bare LR (i ældre
browsere kan document.all.LR også være en mulighed, men
getElementById bør foretrækkes.

Prøv at lave scriptet om til

<script type="text/javascript">
   function SetCorners() {
   var LR = document.getElementById("LR");
   if (LR && LR.style) {
      LR.style.left =
       (document.body.scrollLeft +
        document.body.clientWidth - LR.width) + "px";
      LR.style.top =
       (document.body.scrollTop +
        document.body.clientHeight - LR.height) + "px";
   }
}
</script>

I forhold til originalen er der ændret følgende:

a) language="JavaScript" => type="text/javascript"

b) Linjen med "var LR.." er indført for at lave en reference til
objektet med id="LR"

c) Der er indført et objekt-tjek (if-sætningen) for at forhindre
fejl hvis LR-elementet ikke er fundet, eller en browser ikke kender
til .style-syntaksen

d) Der er tilføjet "px" til css-erklæringerne (det er obligatorisk
med enheder i css, og i standardmode virker det ikke hvis man
glemmer enheden.


Jeg har ikke testet funktionen, så det er muligt at der gemmer sig
en fejl et sted. Men du burde kunne komme en del videre fra
ovenstående. Brug evt. javascriptkonsollen i Firefox til at
fejlfinde.

> Jeg har derfor brug for at lave en tilsvarende funktion i
> validerbar ?HTML og CSS. Nogen gode forslag til hvilken
> vej.?????

Onresize er bredt understøttet af moderne browsere - også selv om
den altså ikke kan valideres. Onscroll er ikke fuldt understøttet i
Mozilla/Firefox, men virker o.k. i andre større browsere.

Se mere på siden her:
<http://www.quirksmode.org/js/events_compinfo.html>

> Hvilken Doc type bør jeg satse på generelt, hvis jeg skal se
> lidt fremad samtidig med, at jeg gerne vil anvende MS
> Frontpage af de politikse grunde???

Først og fremmest - hvis du vil tage validering seriøst bør du kun
anvende Frontpage i nyeste udgave (2003 så vidt jeg husker) - ældre
udgaver er håbløse til at lave valid kode.

Med hensyn til doctype er der to ting der kan spille ind på valget.
Hvis du (eller dit firma) vil benytte links til nye vinduer mv.
skal du bruge transitional-undertypen. Det er en god ide at lave
koden "så strict som muligt", også selv om man benytter
transitional som undertype.

Valget mellem html og xhtml kan dels afhænge af hvordan de
eksisterende sider ser ud (hvis du anvender html på siderne i
forvejen, kan det være en ide at fortsætte med det).

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

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

Månedens bedste
Årets bedste
Sidste års bedste