/ 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
Script type/language ?
Fra : John Kjoller


Dato : 11-05-05 19:42

Når man indsætter en javascript function, hvad er så forskellen på :
<script language="javascript"></script>

og

<script type="javascript"></script>

Eller hører spørgsmålet under html ?

Kh
john




 
 
Kristian Thy (11-05-2005)
Kommentar
Fra : Kristian Thy


Dato : 11-05-05 19:49

John Kjoller wrote:
> Når man indsætter en javascript function, hvad er så forskellen på :
> <script language="javascript"></script>

Det er ikke-velformet HTML. Der mangler en type-attribut.

> og
>
> <script type="javascript"></script>

Det er ikke-velformet HTML. Type-attributten skal indeholde en MIME-type
som fx. "text/javascript".

\\kristian
--
Thomas Madsens fremragende guide til sikring af Windows:
http://home18.inet.tele.dk/madsen/windows/tjenester/

John Kjoller (11-05-2005)
Kommentar
Fra : John Kjoller


Dato : 11-05-05 19:53

"Kristian Thy" <thy@itu.dk> skrev i en meddelelse
> Det er ikke-velformet HTML. Der mangler en type-attribut.
>
>> og
>>
>> <script type="javascript"></script>
>
> Det er ikke-velformet HTML. Type-attributten skal indeholde en MIME-type
> som fx. "text/javascript".
>

Nå ja, jeg glemte "text/".
Men det var også netop "type"/"language" jeg var ude efter.

Og så er svaret at "language" er forkert, og "type" er korrekt - ikke sandt?

Er der en speciel grund til at mange bruger "language"? (er det en gammel
form, eller hvor er det kommet fra?)

Kh
john





Kristian Thy (11-05-2005)
Kommentar
Fra : Kristian Thy


Dato : 11-05-05 20:06

John Kjoller wrote:
> Nå ja, jeg glemte "text/".
> Men det var også netop "type"/"language" jeg var ude efter.
>
> Og så er svaret at "language" er forkert, og "type" er korrekt - ikke sandt?

Language alene er forkert - type er obligatorisk.

> Er der en speciel grund til at mange bruger "language"? (er det en gammel
> form, eller hvor er det kommet fra?)

Language er så vidt jeg husker et levn fra de gode gamle 90'eres
browserkrig. Den er stadig tilladt men ikke obligatorisk, så gamle
browsere også kan være med.

\\kristian
--
Thomas Madsens fremragende guide til sikring af Windows:
http://home18.inet.tele.dk/madsen/windows/tjenester/

Johnny Winther Ronne~ (11-05-2005)
Kommentar
Fra : Johnny Winther Ronne~


Dato : 11-05-05 20:36


"John Kjoller" <john@skrivikkedette-basix.dk> skrev i en meddelelse
news:428254ad$0$649$ba624c82@nntp02.dk.telia.net...

Grundlæggende er der ikke noget galt i at bruge language for det er inden
for standarden, men hvis man forsøger at validere en side under strict går
det galt.

Der er i alle webdesigngrupperne en tendens til at kræve kompatibilitet med
den nyeste standard, hvilket ikke altid er nødvendigt. Dels forstår
browserne ikke så meget at de nyeste standarder og de viser dem forskelligt,
når de forstår dem.

Der findes rigtig mange millioner hjemmesider der er skrevet til tidligere
versioner af html og dem kløjs browserne sjældent i fordi browserne er lavet
så de er bagud kompatible.

Men "text/" gør det muligt at validere siden på alle niveauer.

Med venlig hilsen
Johnny Winther Ronnnenberg



Lasse Reichstein Nie~ (11-05-2005)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 11-05-05 21:06

"John Kjoller" <john@skrivikkedette-basix.dk> writes:

> Og så er svaret at "language" er forkert, og "type" er korrekt - ikke sandt?

Type er korrekt (pakrævet og tilstrækkeligt).
Language er ikke decideret forkert, men(!) det er frarådet (deprecated)
af HTML-specificationen (har været det siden den kom med) og kan endda
forvirre browsere.

> Er der en speciel grund til at mange bruger "language"? (er det en gammel
> form, eller hvor er det kommet fra?)

Gammel form. Netscape indførte <script language="JavaScript"> i Netscape 2,
den første browser med scripting. Så kom Netscape 3, som brugte JavaScript
version 1.1. For at kunne bruge de "moderne" features, uden at forvirren
Netscape 2'ere, kunne man skrive <script language="JavaScript1.1">. Det
ville så kun køre på Netscape 3.

Så kom Netscape 4 med JavaScript 1.2, som ikke bare var en udvidelse af
JavaScript 1.1, men som også lavede nogle små ændringer i hvordan nogle
ting opførte sig. Igen kunne man skrive "JavaScript1.2" for at udelukke
de ældre browsere. Man kunne dog også skrive "JavaScript1.1", og så
fortolkede Netscape 4 scriptet på den gamle måde. Altså to sprog i en
browser :)

Netscape fandt ud af at ændringer i hvordan en if-sætning virker, ikke
er en god idé. I Netscape 4.06 indførte de JavaScript version 1.3.

JavaScript 1.4 blev sprunget over (sikkert planlagt til Netscape 5, som
jo også bliv skippet).

JavaScript 1.5 kom med Mozilla (og derfor Netscape 6, 7 og 8).

Selv i de nyeste browsere Netscape-browsere kan man stadig bestemme at
man vil bruge den "lidt anderledes" fortolkning fra JavaScript 1.2 ved
at bruge language="JavaScript1.2". Det betyder også at et script hvor
der står dette kan blive udført forskelligt på Netscape/Mozilla og IE
(eller andre browsere der kun implementerer en version af ECMAScript).

Altså: *Aldrig* skrive "JavaScript1.2". Det er direkte farligt (selvom
ændringerne er i dele af JavaScript som man heldigvis sjældent rammer).
Men den regel er egentlig ligegyldig, for type="text/javascript" er,
som sagt, påkrævet i HTML og er altid tilstrækkelig.

Eksempel: Prøv at sætte dette på en side, og kig på den i
Mozilla/Netscape og en anden browser, fx IE:

<script language="JavaScript1.2">
var a = 0;
var b = 1;
if (a=b) {
alert("ej JS 1.2");
} else {
alert("JS 1.2");
}
</script>


Hyg!
/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.'

Kristian Thy (12-05-2005)
Kommentar
Fra : Kristian Thy


Dato : 12-05-05 09:07

Lasse Reichstein Nielsen wrote:
> if (a=b) {

Er det en slåfejl, eller mener du at der kun skal være ét =?

\\kristian
--
Thomas Madsens fremragende guide til sikring af Windows:
http://home18.inet.tele.dk/madsen/windows/tjenester/

Jens Gyldenkærne Cla~ (12-05-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 12-05-05 10:19

Kristian Thy skrev:

> Lasse Reichstein Nielsen wrote:
>> if (a=b) {
>
> Er det en slåfejl, eller mener du at der kun skal være ét =?

Det er ikke en slåfejl - det er netop det der demonstrerer forskellen på
Javascript1.2 og nyere javascriptudgaver.

Prøv at køre scriptet i IE og Firefox - det giver to forskellige
resultater. Hvis man fjerner language-parameteren og sætter type i
stedet, giver Firefox samme svar som IE og Opera.

Forklaringen er at Geckobrowsere fortolker if(a=b) som if(a==b) - altså
en sammenligning mellem a og b - når language er angivet som
Javascript1.2. Uden language (eller fx med language="javascript" eller
language="Javascript1.5"), fortolkes if(a=b) som det bør ifølge
standarden - det vil sige "Sæt a lig med b og tjek om det gik godt".

Men hvis meningen er at sammenligne tallene a og b, bør man selvfølgelig
skrive if(a==b) - eksemplet ovenfor er bare lavet for at demonstrere en
risiko der er ved at bruge language-parameteren.

--
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

Jan Rasmussen (12-05-2005)
Kommentar
Fra : Jan Rasmussen


Dato : 12-05-05 16:32

hvad sker der så hvis linien ser sådan her ud?

<script type='text/javascript'
src=''>http://127.0.0.1:1027/js.cgi?pcaw&r=912'>

hvad er det lige dette her gør?
src='http://127.0.0.1:1027/js.cgi?pcaw&r=912'

mvh
JR



--
Jeg beskyttes af den gratis SPAMfighter til privatbrugere.
Den har indtil videre sparet mig for at få 670 spam-mails.
Betalende brugere får ikke denne besked i deres e-mails.
Hent den gratis her: www.spamfighter.dk



Lasse Reichstein Nie~ (12-05-2005)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 12-05-05 17:00

"Jan Rasmussen" <jr@ØÅÅØvejen-net.dk> writes:

> hvad sker der så hvis linien ser sådan her ud?
>
> <script type='text/javascript'
> src=''>http://127.0.0.1:1027/js.cgi?pcaw&r=912'>
>
> hvad er det lige dette her gør?
> src='http://127.0.0.1:1027/js.cgi?pcaw&r=912'

Attributten "src" på script-elementet siger at scriptet skal hentes
fra en ekstern fil, i stedet for at stå mellem <script...> og
</script>. I dette tilfælde hentes den eksterne fil fra en webserver
(jvf. HTTP-protokollen) på ens egen maskine (127.0.0.1 er altid
ens egen maskine) på port 1027. Resten bruges af den web-server
til at finde ud af hvad den skal sende tilbage som svar.

Jeg gætter på at du har en eller anden web-proxy kørende, som har
indsat dette. Lidt Google'ing viser at linjen sikkert findes
under en der siger:
<!-- ZoneLabs Privacy Insertion -->
så det er noget ZoneLabs har indsat.

/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.'

Søg
Reklame
Statistik
Spørgsmål : 177495
Tips : 31968
Nyheder : 719565
Indlæg : 6408489
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste