Avatar billede themepark Nybegynder
30. oktober 2003 - 00:01 Der er 20 kommentarer og
2 løsninger

Forskel mellem location.href og location

Hvad er forskellen egentlig mellem om man skriver document.location.href, document.location, window.location.href, og window.location? Såvidt jeg kan se, giver de alle 4 den samme URL.
Avatar billede roenving Novice
30. oktober 2003 - 00:23 #1
Oprindeligt, da man overhovedet opfandt LiveScript (som senere blev til javascript ,-) var der defineret en del uafhængige objekter ...

Et af disse uafhængige objekter var location, som dengang (1995) ikke havde nogen sammenhæng med andre entiteter ...

-- Idag har location.objektet en faktisk tilknytning til både window.objektet og document.objektet, men da man stadig kan udelade window. betyder det, at man under alle omstændigheder kan adressere location uden at angive tilknytningen -- det er det samme objekt man tilgår med document.location, window.location og location ...

-- forskellen på location og location.href er at hvis man spørger på et objekt, vil det returnere en .toString og præcis location-objektets toString-metode returnerer .href !-)
Avatar billede themepark Nybegynder
30. oktober 2003 - 00:26 #2
Spørger på et objekt?
Avatar billede ras2000 Nybegynder
30. oktober 2003 - 11:51 #3
Et object er et overordnet begreb, en kasse. Objectet indeholder nogle egenskaber (properties) og typisk nogle metoder. Location objectet indeholder nogle egenskaber, en af dem er href, og det er vel den der bruges oftest. Den indeholder også search, som er den tekststreng der kommer efter ? i urlen, hash som er det der kommer efter # i urlen, og nogle flere.
Når man skriver window.location.href betyder det: vi skal have fat i kassen som er vindue-objectet, inde i den kasse skal vi have fat i location-objectet, og i den kasse skal vi have fat i href-egenskaben.
Document og Window er tit det samme. Der er lidt gnidder omkring det, da et window kan indeholde flere frames, iframes osv. og ikke alle browsere er enige om hvad der er hvad.
Avatar billede roenving Novice
30. oktober 2003 - 13:09 #4
>>ras2000

-- de skulle gerne være _helt_ enige om window og document jvf. www.w3c.org som har fastlagt hvordan objekt-modellen skal være ...

-- men da en frame er et window.objekt kommer vi til den situation, at et window kan indeholde et (eller mange) andre window-objekter (måske i mange generationer !-)

For så bare lige at gøre det endnu enklere !o] kan et document også indeholder window.objekter -- nemlig iframes ...
Avatar billede roenving Novice
30. oktober 2003 - 13:11 #5
-- Forøvrigt har du helt ret i, at det kan være svært at gennemskue, da man i nogle situationer skal adressere et andet objekt afhængig af hvor man tager fat i det ...

-- f.eks. skal visse events, som man indsætter handlers til i <body>-tagget adresseres fra document.objektet andre fra window.objektet !-)
Avatar billede ras2000 Nybegynder
30. oktober 2003 - 13:15 #6
Jaja, bare fordi det står i w3c, betyder det ikke at der er nogen af browser producenterne der er enige om det. Det er jo det der er hele problemet. Hvis de alle fulgte w3c, så ville det jo pludselig være meget nemmere at x-browse. I min gamle html bog er der altid tre kolloner, hvad w3c mener, hvad netscape mener og hvad ie mener.
Men det er da rigtigt at dom'men hedder window.document.osv.
Avatar billede roenving Novice
30. oktober 2003 - 13:19 #7
-- kender du da en browser som _ikke_ overholder lige præcis den ting ?-)

-- altså at det øverste niveau er et window.objekt og at der findes lige præcis eet document.objekt for hvert !-)
Avatar billede ras2000 Nybegynder
30. oktober 2003 - 13:25 #8
Nej. Men jeg kender heller ikke så meget til programmering x-browser, andet end at det er bøvlet. Jeg lever i en ie verden.
Avatar billede roenving Novice
30. oktober 2003 - 13:29 #9
-- i de 'gamle' v4-dage var der virkeligt bøvl med næsten alt, nuomdage er der kun for alvor bøvl med css og events !-)

-- hvis man vel at mærke skriver det efter w3cs anbefalinger ...
Avatar billede themepark Nybegynder
31. oktober 2003 - 02:18 #10
Well, nu ved jeg godt, hvad et objekt er (men tak alligevel for den forklaring...det hjalp mig faktisk til at forstå det bedre :), det jeg mente var hvad roenving mente med at "spørge" på et objekt?

Og hvad pokker er x-browse nu for noget?
Avatar billede ras2000 Nybegynder
31. oktober 2003 - 09:09 #11
x-browser er når man programmerer til forskellige browsere, krydsbrowser. Hvis du skal have fat i document.location.href spørger du til den str_url = document.location.href, og den returnerer en streng.
Avatar billede themepark Nybegynder
03. november 2003 - 14:31 #12
roenving...hvad mente du med at spørge på et objekt?
Avatar billede roenving Novice
04. november 2003 - 00:37 #13
Man kan jo spørge et objekt om værdien af en egenskab (property) på objektet, men spørger man direkte på objektet, vil de fleste objekter returnere den værdi, som objektets .toString-metode er sat til !-)

-- og som sagt er loaction-objektets .toString-metode det samme som .href ...

Hvis du spørger på andre obejkters værdi, vil du opleve nogle lidt forskellige reaktioner:

nu = new Date();

vil nu og nu.getTime() returnere det samme (nemlig antallet af 1000-dele sekunder siden 1/1-1970 !-)

Mens

arr = new Array();
arr.fest = "Jul";

vil en forespørgsel på arr alene returnere ingenting !-)
Avatar billede themepark Nybegynder
04. november 2003 - 13:00 #14
Godt...så blev jeg SÅ meget klogere. Og nu smider I begge et svar, og så er vi alle glade ;)
Avatar billede ras2000 Nybegynder
04. november 2003 - 13:08 #15
Du kan bare give dem til roenvig, jeg uddybbede vist bare.
Avatar billede themepark Nybegynder
04. november 2003 - 13:14 #16
Jeg kalder det at forklare, og det var det jeg ledte efter...så niksen biksen ;)
Avatar billede roenving Novice
05. november 2003 - 23:31 #17
Så på med pilen ras ...

-- oge velbekomme '-)
Avatar billede themepark Nybegynder
06. november 2003 - 18:19 #18
ras2000, helt seriøst...du skal da lægge et svar, synes jeg :)
Avatar billede ras2000 Nybegynder
07. november 2003 - 09:29 #19
OK, så.
Avatar billede themepark Nybegynder
10. november 2003 - 13:24 #20
Dygtig dreng, ras ;)
Avatar billede roenving Novice
10. november 2003 - 13:29 #21
-- og tak for points ;~}
Avatar billede ras2000 Nybegynder
10. november 2003 - 13:31 #22
Jepper!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester