/ 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 virker ikke i Chrome
Fra : Kim Ludvigsen


Dato : 17-01-10 23:24

Er der nogen, der kan gennemskue, hvad der går galt på denne
side, når den åbnes i Google Chrome?
http://www.gl-estrup.dk/

Der vises blot en rød side i stedet for sidens indhold. Slår
man JavaScript fra, vises sidens indhold (bortset fra
indhold genereret med JavaScript).

Siden er anmeldt til lki.dk, og jeg vil gerne kunne fortælle
dem, hvad det er, de skal rette.

--
Mvh. Kim Ludvigsen
Hjælp til svære danske ord og ordsprog:
http://ordforklaring.dk

 
 
Jens Chr. Jensen (17-01-2010)
Kommentar
Fra : Jens Chr. Jensen


Dato : 17-01-10 23:57

Kim Ludvigsen skrev:

> Der vises blot en rød side i stedet for sidens indhold. Slår man
> JavaScript fra, vises sidens indhold (bortset fra indhold genereret med
> JavaScript).
>

Der mangler //--> før </script>

Først koden fra forsiden, derefter fra en underside, der virker.
Scriptet står i Head, Firefox synes at ignorere fejlen - Chrome gør
ikke. Pudsigt nok stejler farvekodningen i Chromes "Vis kilde" ikke over
fejlen - det er ellers en god måde at opdage uafsluttede kommentarer.
Jeg har ikke IE på Ubuntu, så det kan jeg ikke teste.

Forside:

<script language="JavaScript" type="text/JavaScript">
<!--
window.onresize = new Function("window.location.reload()")

function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if
((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight;
onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH)
location.reload();
}
MM_reloadPage(true);

function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
</script>


Underside:

<script language="JavaScript" type="text/JavaScript">
<!--
window.onresize = new Function("window.location.reload()")

function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if
((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight;
onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH)
location.reload();
}
MM_reloadPage(true);
//-->
</script>


Med venlig hilsen
Jens Chr. Jensen

Jens Chr. Jensen (18-01-2010)
Kommentar
Fra : Jens Chr. Jensen


Dato : 18-01-10 00:08

Hej Kim

Jeg var inde for at kigge på lki.dk, men desværre først efter at jeg
havde svaret her i gruppen. Anmelderen har jo selv givet/antydet svaret.

I øvrigt er jeres forum evigheder om at svare. Har serveren så travlt
her på grænsen mellem søndag og mandag

mvh
Jens Chr.

Kim Ludvigsen (18-01-2010)
Kommentar
Fra : Kim Ludvigsen


Dato : 18-01-10 01:45

Jens Chr. Jensen skrev:

> Jeg var inde for at kigge på lki.dk, men desværre først efter at jeg
> havde svaret her i gruppen. Anmelderen har jo selv givet/antydet svaret.

Aj, jeg sidder med meget røde ører! Jeg havde ikke lagt
mærke til beskrivelsen af årsagen - nok fordi der stort set
aldrig er nogle, som udfylder det punkt. Tak for svaret, og
undskyld, at jeg gav dig unødvendigt arbejde.

> I øvrigt er jeres forum evigheder om at svare. Har serveren så travlt
> her på grænsen mellem søndag og mandag

Jeg ved ikke, om serveren har været specielt belastet på det
tidspunkt. Det kan vist godt svinge lidt.

--
Mvh. Kim Ludvigsen
Omfattende brugerguide for begyndere til Ubuntu Linux
http://kimludvigsen.dk/linux

Jens Chr. Jensen (18-01-2010)
Kommentar
Fra : Jens Chr. Jensen


Dato : 18-01-10 13:39

Kim Ludvigsen skrev:

> Aj, jeg sidder med meget røde ører! Jeg havde ikke lagt mærke til
> beskrivelsen af årsagen - nok fordi der stort set aldrig er nogle, som
> udfylder det punkt. Tak for svaret, og undskyld, at jeg gav dig
> unødvendigt arbejde.

Hej Kim

Tag det nu ikke for tungt. Det var ikke ment som nogen bebrejdelse, så
meget arbejde var der jo heller ikke i det.

Men dels syntes jeg, at anmelderen fortjente anerkendelsen for at have
spottet fejlen, dels gad jeg ikke læse x antal indlæg her i stil med
"Det har anmelderen jo allerede set" - med et underforstået "idiot". Så
hellere skrive det selv med en lille forklaring og spare mig referencen
til idioten

> Jeg ved ikke, om serveren har været specielt belastet på det tidspunkt.
> Det kan vist godt svinge lidt.

Det var bedre lidt senere, da jeg for sjov vendte tilbage for at kigge
nærmere på sitet.

Med venlig hilsen
Jens Chr. Jensen

Jens Chr. Jensen (18-01-2010)
Kommentar
Fra : Jens Chr. Jensen


Dato : 18-01-10 14:25

Jens Chr. Jensen skrev:
> Kim Ludvigsen skrev:
>
>> Der vises blot en rød side i stedet for sidens indhold. Slår man
>> JavaScript fra, vises sidens indhold (bortset fra indhold genereret
>> med JavaScript).
>>
>
> Der mangler //--> før </script>
>

Hej

Der er måske andre fejl også, eller der er (værre) en fejl i Chromes JS
implementering:

Teknikken med

<!--

// -->

skal forhindre browsere uden scriptunderstøttelse i at læse og
præsentere scriptet som tekst. Gammel og velfungerende teknik.

Den burde faktisk ikke fejle i Chrome, selv om sidste linje med JS
kommentaren mangler.

Jeg blev nysgerring efter at friske op, hvorfor den anvendte teknik
faktisk virker. Det gør den fordi <!-- er lovlig som indledning til en
enkeltlinjekommentar i Javascript (eller har i hvertfald været det)

Så Chrome med JS burde som Firefox læse <!-- som en linjekommentar og
derefter gå glad videre. (Som også deres kildetekstpræsentation gør det)

Browsere uden JS bør læse resten af koden som en html kommentar, indtil
der evt. findes --> længere nede på siden. Derfor bør man selvfølgelig
rette fejlen.

Men hvis der ikke er andre fejl på siden (og bemærk, at den underside,
jeg har fundet, faktisk virker korrekt), har Chrome så vidt jeg kan se
et problem, selv om der nok ikke er ret mange, der bruger <!-- til andet
end nævnte formål i JS.

Med venlig hilsen
Jens Chr. Jensen



Lasse Reichstein Nie~ (19-01-2010)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 19-01-10 23:11

"Jens Chr. Jensen" <jcjensen@esenet.dk> writes:

> Teknikken med
>
> <!--
>
> // -->
>
> skal forhindre browsere uden scriptunderstøttelse i at læse og
> præsentere scriptet som tekst. Gammel og velfungerende teknik.

.... i HTML.
Desværre er den direkte skadelig i XHTML, som siden er skrevet i.
I XHTML kan kommentarer (<!-- ... -->) bliver fjernet under XHTML-
parsing, før man overhovedet ved at det er et script-element de
står i. Det gør browserne nok alligevel ikke (selvom det ville
være korrekt), men de kan ikke ignorere en uafsluttet kommentar
på samme måde som i HTML (fordi content-type for script-elementet
er ændret fra CDATA til PCDATA).

Og så er der vist ikke lavet nogen browsere der ikke forstår script-
elementet siden før Netscape 2. Det er helt unødvendigt at have med
i vore dage.

> Den burde faktisk ikke fejle i Chrome, selv om sidste linje med JS
> kommentaren mangler.

Jo, desværre, i XHTML er <!-- ikke bare en del af script-teksten,
den bliver parset på niveau med XHTML-elementerne, så uden en
afslutning er </script> bare en del af kommentaren.

> Jeg blev nysgerring efter at friske op, hvorfor den anvendte teknik
> faktisk virker. Det gør den fordi <!-- er lovlig som indledning til en
> enkeltlinjekommentar i Javascript (eller har i hvertfald været det)

Det er der tradition for, selvom det aldrig har været en del af
ECMAScript standarden (og faktisk er i strid med den [1]). Men i XHTML
bliver <!-- ikke bare sendt videre til script-fortolkeren, men bliver
håndteret af XHTML-parseren (som så, hvis kommentaren er ordentligt
afsluttet, sender hele indholdet med til script-fortolkeren alligevel,
for at folks script virker).

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

Birger Sørensen (20-01-2010)
Kommentar
Fra : Birger Sørensen


Dato : 20-01-10 00:08

Lasse Reichstein Nielsen skrev:
8X
> Og så er der vist ikke lavet nogen browsere der ikke forstår script-
> elementet siden før Netscape 2. Det er helt unødvendigt at have med
> i vore dage.
8X

Den eneste grund til at "udkommentere" scripts, er at man i inline
script (script i XHTML filen), undgår at escape karakterer som elles
vil blive parset (og give valideringsfejl)..
I virkeligheden er det så en grund til at have sine scripts externt i
stedet...

Birger

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



Jens Chr. Jensen (20-01-2010)
Kommentar
Fra : Jens Chr. Jensen


Dato : 20-01-10 01:42

Hej Lasse

Tak for din lange og instruktive forklaring. Så blev jeg så klog. Selv
om det er nogen tid siden, at jeg sidst har lavet JS i større stil og
derfor er ved at friske op på det, ville jeg nok rutinemæssigt have kørt
videre med den gamle praksis. Så jeg er særdeles glad for at få din
forklaring på, hvorfor det er en dårlig ide.

Jeg burde så have husket, hvad du også korrekt gør opmærksom på, at
problemet dengang var browsere, der ikke forstod <script>, og dem er der
næppe så mange tilbage af, at det er nødvendigt at tage hensyn til.

Med venlig hilsen
Jens Chr.

Stig Johansen (20-01-2010)
Kommentar
Fra : Stig Johansen


Dato : 20-01-10 04:05

Lasse Reichstein Nielsen wrote:

> på samme måde som i HTML (fordi content-type for script-elementet
> er ændret fra CDATA til PCDATA).

Kiggede lige i DTD'en, og det er vist noget rod.
Den er defineret som PCDATA, som du siger, men i comments står der 'may
include CDATA sections'.

Gad vide hvordan den skal forstås.

--
Med venlig hilsen
Stig Johansen

Lasse Reichstein Nie~ (20-01-2010)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 20-01-10 07:28

=?ISO-8859-15?Q?Birger_S=F8rensen?= <sdc@bbsorensen.com> writes:

> Lasse Reichstein Nielsen skrev:
> 8X
>> Og så er der vist ikke lavet nogen browsere der ikke forstår script-
>> elementet siden før Netscape 2. Det er helt unødvendigt at have med
>> i vore dage.
> 8X
>
> Den eneste grund til at "udkommentere" scripts, er at man i inline
> script (script i XHTML filen), undgår at escape karakterer som elles
> vil blive parset (og give valideringsfejl)..

Nej, *ikke* i XHTML-filer. Hvis du vil undgå at escape dine tegn
i XHTML skal du bruge en CDATA section (<![CDATA[ ... ]]>).
Brug endelig ikke HTML-kommentarer i XHTML - en standard-overholdende
XHTML-parser må smide kommentarer, med indhold, væk allerede mens
XHTML'en bliver parset.

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

Lasse Reichstein Nie~ (20-01-2010)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 20-01-10 07:40

Stig Johansen <wopr.dk@gmail.com> writes:

> Lasse Reichstein Nielsen wrote:
>
>> på samme måde som i HTML (fordi content-type for script-elementet
>> er ændret fra CDATA til PCDATA).
>
> Kiggede lige i DTD'en, og det er vist noget rod.
> Den er defineret som PCDATA, som du siger, men i comments står der 'may
> include CDATA sections'.
>
> Gad vide hvordan den skal forstås.

En CDATA-sektion er flankeret af <![CDATA[ og ]]>. Det gør at indholdet,
frem til første instans af ]]>, ikke fortolkes som XHTML overhovedet.
Altså, fx:

<script type="text/javascript>
// <![CDATA[
// mit sjove script med sjove tegn.
var y = 42, amp = 17;
var x = y&amp; // &amp; ville ellers blive fortolket som '.
if (foo </script/.exec(bar).length) yadda yadda
// ^ her ville script-elementet ellers skulle stoppe.
// ]]>
</script>

CDATA-sektioner findes kun i XHTML og i HTML 5, ikke i HTML 4 og
tidligere.

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

Stig Johansen (20-01-2010)
Kommentar
Fra : Stig Johansen


Dato : 20-01-10 10:56

Lasse Reichstein Nielsen wrote:
> En CDATA-sektion er flankeret af <![CDATA[ og ]]>. Det gør at indholdet,
> frem til første instans af ]]>, ikke fortolkes som XHTML overhovedet.
> Altså, fx:
[snip]

Jeg modsiger dig ikke.

> CDATA-sektioner findes kun i XHTML og i HTML 5, ikke i HTML 4 og
> tidligere.

Ja, men det ændre ikke ved det faktum, at browserne gør hvad de vil - DTD
eller ej, det er jo ikke DTD'en der bestemmer hvad man gør, men
implementeringen.

--
Med venlig hilsen
Stig Johansen

Anders Wegge Keller (18-01-2010)
Kommentar
Fra : Anders Wegge Keller


Dato : 18-01-10 00:16

Kim Ludvigsen <usenet@kimludvigsen.dk> writes:

> Er der nogen, der kan gennemskue, hvad der går galt på denne side, når
> den åbnes i Google Chrome?
> http://www.gl-estrup.dk/
>
> Der vises blot en rød side i stedet for sidens indhold. Slår man
> JavaScript fra, vises sidens indhold (bortset fra indhold genereret
> med JavaScript).
>
> Siden er anmeldt til lki.dk, og jeg vil gerne kunne fortælle dem, hvad
> det er, de skal rette.

Som jeg skrev, så er jeg rimeligt overbevist om at det er den
kommentar der starter på linie 26, men aldrig bliver afsluttet, der er
årsag til den flotte røde skærm.

Der er flere andre glitches rundt omkring, som f. eks. at på nogle af
siderne bliver kun de øverste 2-3 pixels af menuerne vist, men de er
mindre belastende for tilgængeligheden.

--
/Wegge

Leder efter redundant peering af dk.*,linux.debian.*

Lasse Reichstein Nie~ (18-01-2010)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 18-01-10 07:18

Kim Ludvigsen <usenet@kimludvigsen.dk> writes:

> Er der nogen, der kan gennemskue, hvad der går galt på denne side, når
> den åbnes i Google Chrome?
> http://www.gl-estrup.dk/

Virker den i Safari? Ellers er det formodentlig et Webkit-problem snarere
end et rent Chrome-problem.

> Der vises blot en rød side i stedet for sidens indhold. Slår man
> JavaScript fra, vises sidens indhold (bortset fra indhold genereret
> med JavaScript).

Et hurtigt tjek på siden med Chromes debugger viser javascript-filen
brow_tjek.js, der, bl.a., indeholder:

browserName = navigator.appName;
   browserVer = parseInt(navigator.appVersion);
   var msie4 = (browserName == "Microsoft Internet Explorer" && browserVer >= 4);
   if ((browserName == "Netscape" && browserVer >= 3) || msie4 || browserName=="Konqueror") {version = "n3";} else {version = "n2";}

Det vil sige at Chrome bliver detekteret som en "version 2"
browser. Det kan umuligt være sundt :)

Den slags browser-detekt er lige til at smide ud.

Jeg kan ikke lige se hvad problemet er her og nu, men jeg kan kigge
mere på det senere.

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

Kim Ludvigsen (18-01-2010)
Kommentar
Fra : Kim Ludvigsen


Dato : 18-01-10 09:13

Lasse Reichstein Nielsen skrev:

> Det vil sige at Chrome bliver detekteret som en "version 2"
> browser. Det kan umuligt være sundt :)

Jeg lagde godt mærke til brow_tjek.js, men jeg forstod intet
af indholdet i den. Jeg vil nævne ovenstående til sitet.

> Den slags browser-detekt er lige til at smide ud.

Jep, de har også et andet script som virker meget
overflødigt. Når man ændrer størrelsen på browservinduet
genindlæses siden, men så vidt jeg kan se, er det præcis den
same side, man får igen, altså ikke noget med ændring af
størrelsen af indholdet.

> Jeg kan ikke lige se hvad problemet er her og nu, men jeg kan kigge
> mere på det senere.

Som du kan se på de andre indlæg i tråden er det ikke
nødvendigt, men ellers tak.

--
Mvh. Kim Ludvigsen
http://kimludvigsen.dk

Jens Chr. Jensen (18-01-2010)
Kommentar
Fra : Jens Chr. Jensen


Dato : 18-01-10 15:13

Lasse Reichstein Nielsen skrev:

> Et hurtigt tjek på siden med Chromes debugger viser javascript-filen
> brow_tjek.js, der, bl.a., indeholder:
>
> browserName = navigator.appName;
>    browserVer = parseInt(navigator.appVersion);
>    var msie4 = (browserName == "Microsoft Internet Explorer" && browserVer >= 4);
>    if ((browserName == "Netscape" && browserVer >= 3) || msie4 || browserName=="Konqueror") {version = "n3";} else {version = "n2";}


Hej

Jeg tror ikke, at browsertjekket bliver brugt til noget. Der er et mere
"moderne" tjek i browser.js

Der testes for en række specifikke browsere, herunder ældre versioner af
ie og nn og derudover den sædvanlige test for dom kompabilitet
document.getElementById.

Der er et eller andet tilbagefald for browsere, der ikke passerer disse
test, men hvad de får serveret, kan jeg ikke umiddelbart se.

> Det vil sige at Chrome bliver detekteret som en "version 2"
> browser. Det kan umuligt være sundt :)

Hos mig bliver Chrome detekteret som Safari:

i browser.js

else if (agent.indexOf("safari") != -1)
   safari = true;

og senere i browser.js

else if (safari)
   document.write('<script type="text/javascript" src="' + buildDir +
'saf-build.js"></script>');

og endelig:

Chrome registrerer /include/saf-build.js som en af siden resources

> Den slags browser-detekt er lige til at smide ud.

Jep, og det har de måske også gjort

Med venlig hilsen
Jens Chr. Jensen

Lasse Reichstein Nie~ (19-01-2010)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 19-01-10 22:36

Kim Ludvigsen <usenet@kimludvigsen.dk> writes:

> Lasse Reichstein Nielsen skrev:
>
>> Det vil sige at Chrome bliver detekteret som en "version 2"
>> browser. Det kan umuligt være sundt :)
>
> Jeg lagde godt mærke til brow_tjek.js, men jeg forstod intet af
> indholdet i den. Jeg vil nævne ovenstående til sitet.
>
>> Den slags browser-detekt er lige til at smide ud.
>
> Jep, de har også et andet script som virker meget overflødigt. Når man
> ændrer størrelsen på browservinduet genindlæses siden, men så vidt jeg
> kan se, er det præcis den same side, man får igen, altså ikke noget
> med ændring af størrelsen af indholdet.

Jeg mener at huske at det var noget man gjorde i Netscape 3, eller
måske endda Netscape 4, fordi den ikke reflow'ede siden når vinduet
ændrede størrelse. Måske netop sådan noget der sker når man bliver
behandlet som en "version 2" browser :)

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

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407843
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste