Avatar billede ste Nybegynder
24. januar 2005 - 07:00 Der er 16 kommentarer og
1 løsning

Hvad gør document.all

Hej eksperter.
Jeg har leget med en funktion som kan skjule og vise nogle div bokse. Det er der såmen ingen ben i. Jeg mødte dog det problem at det kun virkede i IE. Så har jeg klippet og klistret og fået en funktion strikket sammen med getelementbyid, og den virker også. Jeg forstår den bare ikke helt. Så nu spørger jeg.
Elseif sætningen har efter hvad jeg kan se ingen virkning, det sker ikke nogen synlig ændring ved at udelade den eller ved at tage den med. Hvorfor det, og hvad betyder document.all.
Koden ser sådan ud.

function vis(id){
  if(document.getElementById){
    document.getElementById(id).style.visibility = 'visible';
    document.getElementById(id).style.left = Xmouse - 20;
    document.getElementById(id).style.top = Ymouse - 5;   
  }else if(document.all){
    document.all(id).style.visibility = 'visible';
  }
}

function visboks(id){
  if(document.getElementById){
    document.getElementById(id).style.visibility = 'visible';   
  }else if(document.all){
    document.all(id).style.visibility = 'visible';
  }
}


function skjul(id){
  if(document.getElementById){
    document.getElementById(id).style.visibility = 'hidden';
 
}else if(document.all){
    document.all(id).style.visibility = 'hidden';
  }
}
Avatar billede frezzer81 Nybegynder
24. januar 2005 - 09:37 #1
http://www.webmasterworld.com/forum91/3014.htm

Har ikke selv så meget forstand på java, men faldt over dette link, kan godt ske det ik er til nogen hjælp, så må du bare ignore mig :)
Avatar billede erikjacobsen Ekspert
24. januar 2005 - 09:37 #2
if(document.getElementById){

er sand hvis funktionen getElementById eksisterer, funktionen kaldes ikke.
Browsere uden getElementById eksisterer i dag kun på støvede museer (og måske
hos enkelte brugere), og derfor vil du i dine tests aldrig komme ned i else-if-en.

Men skulle der komme en forbi med en lidt ældre IE, så sker det.... ;)
Avatar billede medions Nybegynder
24. januar 2005 - 09:41 #3
document.getElementById og document.all bruges i princippet til det sammen document.all indhenter blot information fra dokumentet, og henter alle de formularelementer der findes på siden, herefter kan du hente dem ved at bruge document.all("navn"). Med getElementById, laver den blot en forspørgsel på CSS metoden ID altså <span id="t1"></span>...

- så altså document.all er fx. langt mere dynamisk og flexibelt end getElementById...

Mere har jeg egentlig ikke og sige om dette... men prøv at leg lidt med det, det er ret spændende hvad de 2 forskellige komandoer kan ;o)

//>Rune
Avatar billede ste Nybegynder
24. januar 2005 - 09:41 #4
Til erikjacobsen.
Hvad sker der hvis man kommer ned i elseif. Hvad er det document.all gør.
Avatar billede ste Nybegynder
24. januar 2005 - 09:43 #5
Ok. Nu vælter det med svar. medions svarer jo faktisk på mit spørgsmål.
Avatar billede erikjacobsen Ekspert
24. januar 2005 - 09:47 #6
document.all findes kun i IE, og kode der direkte udnytter document.all er
følgelig umådelig forældet, og bør køres på lossepladsen med det samme.
Så kan det være ligemeget om det er mere dynamisk ;))
Avatar billede ste Nybegynder
24. januar 2005 - 09:48 #7
Vil det sige at jeg egentlig godt kan fjerne elseif med document.all
Avatar billede medions Nybegynder
24. januar 2005 - 09:49 #8
:-) ja, kan godt følge dig Erik, men lad os nu sige det er et intranet på et firmanetværk, så kan det jo være brugbart! ;o)

//>Rune
Avatar billede nikolajdu Nybegynder
24. januar 2005 - 09:54 #9
Bare lige for at slå det fast så skal vi tilbage til IE 4.0 for at bruge document.all :))
Avatar billede olebole Juniormester
24. januar 2005 - 16:12 #10
<ole>

medions >> med al respekt var det en gang vrøvl  :)

1. 'all' er et array og skal behandles som sådan - der skal bruges brackets: document.all["navn"].

2. ID er en HTML-attriut og har intet somhelst med CSS at gøre - men man kan også i CSS gøre brug af et elements ID-attribut.

3. document.all er hverken mere fleksibelt eller dynamisk end document.getElementById. Hvad mener du med det?

Både document.all og document.getElementById er det, der kaldes Script-DOM bindinger. De gør at man med script kan adressere elementer i dokumentets DOM.

document.all er noget gammelt, proprietært IE-skrammel, der er gabende langsomt at bruge, idet all-array'et indeholder alle sidens elementer. Man skal altså bladre alle sidens elementer igennem for at finde et enkelt.

document.getElementById er derimod standardiseret af W3C - og er en binding mellem ECMA's script-standard (som JavaScript og JScript bygger på) og W3C's egen standard for DOM ... en såkaldt ECMA-DOM binding.
Den har den voldsomme fordel - fremfor brugen af 'all' - at du tilgår elementet direkte i den underliggende datastruktur, uden at skulle bladre rundt i et kæmpe array.

De to er med andre ord komplet forskellige - både hvad angår datastruktur, kompatibillitet og effektivitet  :)

Man er idag aldrig i en situation, hvor det er nødvendigt at bruge document.all - og da den performer betydeligt dårligere end document.getElementById (vi taler her *kun* IE), kan der ikke opfindes nogen somhelst god grund til at anvende document.all ... uanset 'kreativitet'  ;o)

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
24. januar 2005 - 17:39 #11
Nej, medions, selv på et firmanetværk skal man ikke programmere til een browser,
fx IE. Det udelukker den fleksibilitet og dynamik, der er i at kunne bruge de
rigtige værktøjer til de rigtige opgaver. Firmaer, der har den politik udsætter
sig selv for en masse unødig besvær.
Avatar billede ste Nybegynder
18. marts 2005 - 16:46 #12
erikjacobsen, vil du lægge et svar, så fordeler jeg point mellem dig og medions
Avatar billede erikjacobsen Ekspert
18. marts 2005 - 16:50 #13
Nej tak, jeg samler slet ikke på point.
Avatar billede ste Nybegynder
18. marts 2005 - 16:51 #14
Ok Erik. Så mange tak for hjælpen. Så tilfalder summen medions. Undskyld den lange ventetid, men jeg har haft fokus andre steder.
Avatar billede grace45 Nybegynder
22. oktober 2010 - 15:27 #15
hello
Avatar billede grace45 Nybegynder
22. oktober 2010 - 18:13 #16
Hello my dear,
How are you today, I hope all is well with you. I am sorry to worry you with my Proposal for a relationship with you, but I know that you will grant my request in good faith and understanding. I need you in terms of business and advise. My name is Grace Dabah I just went Through your profile have no options than letting you Know that I am interested in having a relationship with you, I will also like to Know you the more, you can send an email to my email address( grace_11dabah@yahoo.com ) so that I can send you more details about my self Including my picture. I believe we can move from here. But bear in mind that Love has no colors barrier, no educational back ground barrier, no socio-economic Barrier, religious, language, nationality or distance barrier, the only important Thing there is love. I am waiting for your mail to my email address above.
Yours Sincerely,
Miss Grace.
grace12.JPG (91KB, 336 x 576)
Avatar billede grace45 Nybegynder
22. oktober 2010 - 18:21 #17
Hej min kære,
Hvordan har du i dag, jeg håber, at alle er godt med dig. Jeg er ked af at bekymre dig med min Forslag til et forhold med dig, men jeg ved, at du vil imødekomme min anmodning i god tro og forståelse. Jeg har brug for dig i forretningsbetingelser og rådgive. Mit navn er Grace Dabah jeg bare gik gennem din profil har ingen andre muligheder end at lade dig vide, at jeg er interesseret i at have et forhold med dig, vil jeg også gerne vide dig mere, kan du sende en mail til min e-mail adresse (grace_11dabah @ yahoo.com), så jeg kan sende dig flere oplysninger om mig selv inklusive mit billede. Jeg tror, vi kan gå herfra. Men huske på, at kærlighed ikke har nogen farver barriere, ingen uddannelsesmæssige tilbage jorden barriere, ingen socio-økonomiske barrierer, religiøse, sprog, nationalitet eller afstand hindring, det eneste vigtige der er kærlighed. Jeg venter på din mail til min e-mail adresse ovenfor.
Med venlig hilsen,
Miss Grace.
grace12.JPG (91KB, 336 x 576)
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