/ 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
No properties og Event handler trampoline
Fra : Villum Sejersen


Dato : 23-03-03 16:55

Det er "underholdende" at browse på mange store websteder med Mozilla og
Opera i nyeste versioner, hhv. 1.3 og 7.0.3, med javascript-konsollen
slået til. Her et helt tilfældigt eksempel fra et ellers fortræffeligt
site. Men jeg kunne have valgt den første snes andre, der åbenbart
mangler lidt ekstra korrekturlæsning:

=== Mozilla 1.3b ===
Error: window.event has no properties
Source File: http://www.naturnet.dk/includes/menu_script.js
Line: 91
=== * ===

=== Opera 7.0.3 ===
Event thread: onclick
Error:
name: TypeError
message: Statement on line 209: Expression evaluated to null or
undefined and is not convertible to Object: document.selection
Backtrace:
Line 209 of linked script http://www.naturnet.dk/includes/menu_script.js
document.selection.empty();
At unknown location
{event handler trampoline}
=== * ===

Interessant nok fanger browserne åbenbart hvert sit problem? Eller??

Trods fejlmeldingerne ser funktionaliteten ud til være nogenlunde intakt.

Er der nogen der vil fortolke fejlene og give et bud på, hvad den
pågældende webmaster (og kolleger) burde gøre ved det?

Er det noget generelt mht. javascript-programmering, eller er det noget
sprog- og versionsspecifikt, der trigger?

Det er ikke for at hænge nogen bestemt ud, for næsten alle hel- og
halvoffentlige sites udløser tilsvarende meldinger.

--
Villum Sejersen


 
 
Lasse Reichstein Nie~ (23-03-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 23-03-03 17:27

Villum Sejersen <vse_FJERN@DETTE_trundholm.dk> writes:

> Det er "underholdende" at browse på mange store websteder med Mozilla
> og Opera i nyeste versioner, hhv. 1.3 og 7.0.3, med
> javascript-konsollen slået til. Her et helt tilfældigt eksempel fra et
> ellers fortræffeligt site. Men jeg kunne have valgt den første snes
> andre, der åbenbart mangler lidt ekstra korrekturlæsning:
>
>
> Interessant nok fanger browserne åbenbart hvert sit problem? Eller??

Ja. Det er forskelligt hvilke Microsoftopfindelser de har valgt at
efterligne. Mozilla har ikke en global event og Opera har ikke et
selection-objekt.

> Trods fejlmeldingerne ser funktionaliteten ud til være nogenlunde intakt.

Ja, det er jo ikke fordi Javascript normalt er nødvendigt for at bruge
en side. Hvis den er, så er det enten en meget specialiseret side
eller også er det en meget dårligt lavet side.

> Er der nogen der vil fortolke fejlene og give et bud på, hvad den
> pågældende webmaster (og kolleger) burde gøre ved det?

For window.event-fejlen: Brug standarden (events er parametre til
eventhandlerfunktioner) og fald tilbage på MS-opførsel hvis det ikke
virker. Jeg starter altid mine event-handlers med:
function (event) {
event = event || window.event;

Der er også mange andre forskelle på DOM Events og Microsoft events,
så det er ikke den eneste ting man skal holde øje med.

For selection-problemet er der ikke en standard, men de burde i det
mindste tjekke at selection-objektet findes før de begynder at bruge
det.

> Er det noget generelt mht. javascript-programmering, eller er det
> noget sprog- og versionsspecifikt, der trigger?

Javascriptsproget (eller ECMAScript) er et abstrakt sprog, der ikke
har noget specielt med websider at gøre. Fejlene her sker i det
interface der er mellem websiderne og Javascript. Der er en standard
(DOM), og der er browsere der har implementeret den standard, og
så er der Microsofts IE der stadig bruger deres egne metoder som
er ganske inkompatible med standarden. Derfor bliver man nødt til
at tjekke for hver ting man vil gøre om DOM-metoden findes eller om
IE-metoden findes, eller, hvis man virkelig vil være bagudkompatibel,
om Netscape 4's metoder findes i mangel på bedre (NS4 er fra før DOM
blev lavet, så de er lovligt undskyldt, men det er dem der bruger
en så forældet browser ikke :)).

> Det er ikke for at hænge nogen bestemt ud, for næsten alle hel- og
> halvoffentlige sites udløser tilsvarende meldinger.

Det sker hele tiden, og det eneste det kræver for at undgå dem, er at
tjekke før man bruger en feature. Specielt når man bruger en
ikke-standard-feature *bør* man tjekke først.

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

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste