/ 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
JavaScript-fejl
Fra : Ukendt


Dato : 31-08-06 19:51

Hej alle

Jeg er ved at lave en hjemmeside, men jeg er stødt på en JavaScript-fejl
i forbindelse med et slideshow. Fejlen kan ses på følgende side:
http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=1

Hilsen
Lasse

 
 
Thrane (31-08-2006)
Kommentar
Fra : Thrane


Dato : 31-08-06 20:33


"at (nospam)" <"lasse(at(nospam))the87boy.dk"> wrote in message
news:44f72f79$0$75029$14726298@news.sunsite.dk...
> Hej alle
>
> Jeg er ved at lave en hjemmeside, men jeg er stødt på en JavaScript-fejl i
> forbindelse med et slideshow. Fejlen kan ses på følgende side:
> http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=1
>
> Hilsen
> Lasse

Hvornår optræder den fejl?
Jeg synes ikke jeg får nogle...

Men noget andet...
Synes du skal undgå mellemrum i dine foldernavne...
Det ser ikke så "pænt" ud med %20 i adressen!

/Thrane



Ukendt (01-09-2006)
Kommentar
Fra : Ukendt


Dato : 01-09-06 09:01

Thrane wrote:
> Hvornår optræder den fejl?
> Jeg synes ikke jeg får nogle...

Den forekommer i Firefox

> Men noget andet...
> Synes du skal undgå mellemrum i dine foldernavne...
> Det ser ikke så "pænt" ud med %20 i adressen!

Nej, det skal jeg nok få rettet, når jeg kommer til det, men nu er det
lige fejl i JavaScript, jeg retter

Kasper Lindberg (01-09-2006)
Kommentar
Fra : Kasper Lindberg


Dato : 01-09-06 18:20


"at (nospam)" <"lasse(at(nospam))the87boy.dk"> skrev i en meddelelse
news:44f7e8d3$0$75034$14726298@news.sunsite.dk...
> Thrane wrote:
>> Hvornår optræder den fejl?
>> Jeg synes ikke jeg får nogle...
>
> Den forekommer i Firefox
>
>> Men noget andet...
>> Synes du skal undgå mellemrum i dine foldernavne...
>> Det ser ikke så "pænt" ud med %20 i adressen!
>
> Nej, det skal jeg nok få rettet, når jeg kommer til det, men nu er det
> lige fejl i JavaScript, jeg retter
Den fejl jeg får, er ikke en javascript-fejl.
et skud i tågen, ville være at ændre

<meta http-equiv="Content-Type" content="application/xhtml+xml;
charset=iso-8859-1" />

til

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />


en anden mulighed: indsæt
<!--
i starten af dit script og
//-->
i slutningen

(jeg havde gjort begge dele)

Håber det hjælper

/Kasper



Ukendt (01-09-2006)
Kommentar
Fra : Ukendt


Dato : 01-09-06 18:53

Kasper Lindberg wrote:
> Den fejl jeg får, er ikke en javascript-fejl.
> et skud i tågen, ville være at ændre
>
> <meta http-equiv="Content-Type" content="application/xhtml+xml;
> charset=iso-8859-1" />
>
> til
>
> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />

Jamen, når jeg helst vil have det til at validere som xhtml, hvis det
kan lade sig gøre

> en anden mulighed: indsæt
> <!--
> i starten af dit script og
> //-->
> i slutningen

Det starter jeg med at gøre så

> (jeg havde gjort begge dele)

Okay, men når jeg gerne vil have det til at validere som xhtml

Thrane (02-09-2006)
Kommentar
Fra : Thrane


Dato : 02-09-06 09:28


"at (nospam)" <"lasse(at(nospam))the87boy.dk"> wrote in message
news:44f8737e$0$75032$14726298@news.sunsite.dk...
>
> Okay, men når jeg gerne vil have det til at validere som xhtml

Af hvilken grund?

/Thrane



Ukendt (02-09-2006)
Kommentar
Fra : Ukendt


Dato : 02-09-06 16:45

Thrane wrote:
> Af hvilken grund?

Det er en skole opgave, og så ser det lidt mere professionelt ud

Lasse Reichstein Nie~ (03-09-2006)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 03-09-06 08:33

at(nospam) <"lasse(at(nospam))the87boy.dk"> writes:

> Thrane wrote:

[brug af XHTML]
>> Af hvilken grund?
>
> Det er en skole opgave, og så ser det lidt mere professionelt ud

Det vil en professionel måske være uenig i :)

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Ukendt (01-09-2006)
Kommentar
Fra : Ukendt


Dato : 01-09-06 20:56

at(nospam) wrote:
> Jeg er ved at lave en hjemmeside, men jeg er stødt på en JavaScript-fejl
> i forbindelse med et slideshow. Fejlen kan ses på følgende side:
> http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=1

Nu får jeg en fejl på:
http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=2
Er der nogle, der kan hjælpe mig med den?

Lasse Reichstein Nie~ (02-09-2006)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 02-09-06 11:06

at(nospam) <"lasse(at(nospam))the87boy.dk"> writes:

> Nu får jeg en fejl på:
> http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=2
> Er der nogle, der kan hjælpe mig med den?

Hvis du gerne vil lave XHTML (og det vil jeg på det kraftigste advare
mod, specielt så længe IE ikke forstår XHTML alligevel) så skal du
passe på med script-elementer.

I XHTML bliver hele dokumentet parset som XML før det bliver fortolket
som XHTML, og XML-parseren ved ikke at script-elementer er specielle.

Brug *ikke* <!-- og --> omkring dine script-elementer i XHTML (og lad
for øvrigt også være i HTML, med mindre din side skal ses af browsere
ældre end Netscape 2, det er ikke nødvendigt).

Det er fuldt lovligt for XML-parseren at smide hele indholdet af en
XML-kommentar (<!-- ... -->) væk, så XHTML-fortolkeren aldrig ser det.

Desuden må du ikke have "--" inde i en kommetar-blok, hvilket er en af
de fejl du får her (der står "i--" i linje 103). (Det må du for øvrigt
heller ikke i HTML, men browserne er noget mere tilgivende over for
fejl i HTML-mode).

For at beskytte script-elementet mod at blive fortolket kan du pakke
det ind i en CDATA-erklæring:
<script type="text/javascript">
// <![CDATA[
... script her
// ]]>
</script>
Det er XML/XHTML-måden at sige at indholdet ikke skal parses som XML,
så du kan bruge "<" og "--" uden problemer.


Held og lykke.
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Ukendt (02-09-2006)
Kommentar
Fra : Ukendt


Dato : 02-09-06 19:19

Lasse Reichstein Nielsen wrote:
> Hvis du gerne vil lave XHTML (og det vil jeg på det kraftigste advare
> mod, specielt så længe IE ikke forstår XHTML alligevel) så skal du
> passe på med script-elementer.

Jamen, det har jeg taget højde for i PHP-scriptet, der kigger efter, om
browseren understøtter XHTML (vha. en header)

> Brug *ikke* <!-- og --> omkring dine script-elementer i XHTML (og lad
> for øvrigt også være i HTML, med mindre din side skal ses af browsere
> ældre end Netscape 2, det er ikke nødvendigt).

Det vidste jeg faktisk ikke :O

> Desuden må du ikke have "--" inde i en kommetar-blok, hvilket er en af
> de fejl du får her (der står "i--" i linje 103). (Det må du for øvrigt
> heller ikke i HTML, men browserne er noget mere tilgivende over for
> fejl i HTML-mode).
>
> For at beskytte script-elementet mod at blive fortolket kan du pakke
> det ind i en CDATA-erklæring:
> <script type="text/javascript">
> // <![CDATA[
> ... script her
> // ]]>
> </script>
> Det er XML/XHTML-måden at sige at indholdet ikke skal parses som XML,
> så du kan bruge "<" og "--" uden problemer.

Tak for det :D
Nu har jeg blot en fejl, og denne er:

Error: uncaught exception: [Exception... "Object cannot be created in
this context" code: "9" nsresult: "0x80530009
(NS_ERROR_DOM_NOT_SUPPORTED_ERR)" location:
"http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=1
Line: 53"]

Lasse Reichstein Nie~ (03-09-2006)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 03-09-06 08:32

at(nospam) <"lasse(at(nospam))the87boy.dk"> writes:

> Nu har jeg blot en fejl, og denne er:
>
> Error: uncaught exception: [Exception... "Object cannot be created in
> this context" code: "9" nsresult: "0x80530009
> (NS_ERROR_DOM_NOT_SUPPORTED_ERR)" location:
> "http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=1
> Line: 53"]

Der er flere bekymrende linjer i dit script.

Selve fejlen kommer fordi du bruger document.write. Denne er ikke
understøttet i XHTML (fordi XML-parseren skal parse hele siden inden
den overlades til XHTML-fortolkeren, som først da kan se hvilke
elementer er scripts og udføre dem, så der er det for sent at ændre
på sidens XHTML-indhold ved at indsætte uparset tekst).

Hvis du vil ændre på indholdet, så skal du bruge DOM-metoder, ikke
document.write.


Et par linjer over står der:
---
var ie4=document.all;
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1;
---
Browser-sniffing (at forsøge at finde ud af hvilken browser man bruger),
er generelt en dårlig idé ... bl.a. fordi det er så svært at gøre, og
fordi man uværgerligt glemmer nogle browsere. Hvad er værdien af ie4
og dom fx i Safari? Gør det noget hvis de begge er true? Hvis nej, hvorfor
er Opera så undtaget?

Det er bedre at bruge feature-sniffing, hvor man tjekker om præcist den
funktionalitet man skal bruger, er der. Det gøres fint i moveslide hvor
der testes for .filters og .style.MozOpacity.

Man kunne sige at det er det du gør, ved at tjekke om document.all er
der og om document.getElementById er der, men så er navnene på
variablene misledende, og tjekket for Opera er spildt (Opera understøtter
både document.all og document.getElementById, så det virker alligevel).


Så er der linjen:
---
crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas);
---
Her er "eval" helt unødvendig:
crossobj = tempobj = (dom? document.all[currcanvas] :
document.getElementById(curcanvas));

Her burde der nok tilføjes en linje for netscape 4, som du jo forsøger
at understøtte med layers. Brug fx:

function getElement(id) {
if (document.getElementById) {
return document.getElementById(id);
} else if (document.all) {
return document.all[id];
} else if (document.layers) {
return document.layers[id]; // hvis det er et layer
} else {
return null; // panic
}
}

Man kan udvide den til at tjekke alle collections (document.images,
document.forms (og deres elements)) i stedet for kun document.layers,
så man har en chance for at finde et element der har en id i Netscape
4, også hvis det ikke er et layer.


Hvis du vælger forskellige sider afhængigt af om browseren forstår
XHTML, så skal du enten også bruge forskellige scripts, eller skrive
det meget forsigtigt så det understøtter både DOM og document.write.

/L         
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Ukendt (04-09-2006)
Kommentar
Fra : Ukendt


Dato : 04-09-06 09:50

Lasse Reichstein Nielsen wrote:
> Der er flere bekymrende linjer i dit script.

Ja, men jeg har bare kopieret den direkte fra DynamicDrive

> Selve fejlen kommer fordi du bruger document.write. Denne er ikke
> understøttet i XHTML (fordi XML-parseren skal parse hele siden inden
> den overlades til XHTML-fortolkeren, som først da kan se hvilke
> elementer er scripts og udføre dem, så der er det for sent at ændre
> på sidens XHTML-indhold ved at indsætte uparset tekst).
>
> Hvis du vil ændre på indholdet, så skal du bruge DOM-metoder, ikke
> document.write.

Hvordan ser DOM-metoden så ud?
Og hvorfor virker det i de andre scripts:
http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=2
http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=3

> Et par linjer over står der:
> ---
> var ie4=document.all;
> var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1;
> ---
> Browser-sniffing (at forsøge at finde ud af hvilken browser man bruger),
> er generelt en dårlig idé ... bl.a. fordi det er så svært at gøre, og
> fordi man uværgerligt glemmer nogle browsere. Hvad er værdien af ie4
> og dom fx i Safari? Gør det noget hvis de begge er true? Hvis nej, hvorfor
> er Opera så undtaget?
>
> Det er bedre at bruge feature-sniffing, hvor man tjekker om præcist den
> funktionalitet man skal bruger, er der. Det gøres fint i moveslide hvor
> der testes for .filters og .style.MozOpacity.

Ja, men hvordan kan man gøre det?

> ---
> crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas);
> ---
> Her er "eval" helt unødvendig:
> crossobj = tempobj = (dom? document.all[currcanvas] :
> document.getElementById(curcanvas));
>
> Her burde der nok tilføjes en linje for netscape 4, som du jo forsøger
> at understøtte med layers. Brug fx:
>
> function getElement(id) {
> if (document.getElementById) {
> return document.getElementById(id);
> } else if (document.all) {
> return document.all[id];
> } else if (document.layers) {
> return document.layers[id]; // hvis det er et layer
> } else {
> return null; // panic
> }
> }

Den vil jeg så bruge istedet for

> Man kan udvide den til at tjekke alle collections (document.images,
> document.forms (og deres elements)) i stedet for kun document.layers,
> så man har en chance for at finde et element der har en id i Netscape
> 4, også hvis det ikke er et layer.

Understøtter Netscape 4 da heller ikke det eller?

> Hvis du vælger forskellige sider afhængigt af om browseren forstår
> XHTML, så skal du enten også bruge forskellige scripts, eller skrive
> det meget forsigtigt så det understøtter både DOM og document.write.

Så du vil foreslå jeg laver to forskellige scripts?

Ukendt (10-09-2006)
Kommentar
Fra : Ukendt


Dato : 10-09-06 07:05


"at (nospam)" <"lasse(at(nospam))the87boy.dk"> skrev
> Hej alle
>
> Jeg er ved at lave en hjemmeside, men jeg er stødt på en JavaScript-fejl i
> forbindelse med et slideshow. Fejlen kan ses på følgende side:
> http://skole.the87boy.dk/Service%20og%20Kommunikation/index.php?id=1

Jeg vil ikke gøre mig klog på javascript...
Men slåfejl kæmper vi vist alle imod...
Prøv at kigge på disse 2 .linjer:

document.wirte - din linje...
document.write - er den korrekte syntax

Bjarne



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