Avatar billede thesurfer Nybegynder
19. august 2005 - 20:17 Der er 18 kommentarer og
2 løsninger

Fang det omkrandsende link (A-tag)

Hvordan fanger man det omkrandsende link (A-tag)?

Eksempel:

<a href="http://www.domain.dk"><img src="billede.jpg" onclick="JS-KODE-HER"></a>

Jeg vil gerne have fat i linket (henvisning til det), så jeg kan arbejde med det. F.eks. hente "href", og måske ændre dets "onclick", osv..

Hvis det kan lade sig gøre, at fange linket, uden at loope igennem document.links og checke .innerHTML, hvordan gør ser koden så ud?

Sig lige til, hvis spm'et er uklart.. så skal jeg foreklare det nærmere..
Avatar billede roenving Novice
19. august 2005 - 20:24 #1
Virker parentNode ikke ?-)

<a href="http://www.domain.dk"><img src="billede.jpg" onclick="alert(this.parentNode.href);event.cancelBubble=true;"></a>
Avatar billede nielle Nybegynder
19. august 2005 - 20:25 #2
Hvor er det du ønsker at opfange det fra? Er det f.eks. når man klikker på linket eller hvad?
Avatar billede thesurfer Nybegynder
19. august 2005 - 20:31 #3
roenving> Yep.. det var det.. men jeg kan ikke ændre på onclick..?

nielle> Jeg troede at <img src="billede.jpg" onclick="JS-KODE-HER"> var nok.. :-)
Men ja, det er når jeg klikker på billedet..

/theSurfer
Avatar billede thesurfer Nybegynder
19. august 2005 - 20:34 #4
hmm.. event.cancelBubble=true er IE-only..?

/theSurfer
Avatar billede nielle Nybegynder
19. august 2005 - 20:36 #5
Efter som at du ikke har postet i JavaScript kategorien blev jeg lidt i tvivl om det overhovedet var en JS-løsning du søgte :^)
Avatar billede thesurfer Nybegynder
19. august 2005 - 20:38 #6
Ahh.. ja, jeg var lidt i tvivl, om det skulle i JavaScript eller i (D)HTML.. da der både var noget HTML og noget JavaScript, valgte jeg (D)HTML :-)

Men burde nok have oprettet det i JavaScript.. sorry mates..

/theSurfer
Avatar billede roenving Novice
19. august 2005 - 20:45 #7
Men, hvis du ønsker at benytte dig af noget javascript, så er det omkransende link vel bare overflødig kode ?-)

-- og hvad er det for en onclick, du vil ændre ?o]
Avatar billede roenving Novice
19. august 2005 - 20:51 #8
-- og så har jeg ikke tygget alle browsere igennem i.f.t. f.eks. event.cancelBubble, men det er ganske rigtig en IE-ting, som er nødvendig, hvis en event ikke skal boble op til et overliggende element (lige her sked den dog på det !-)

-- jeg har kun testet den slags mod mine Gecko'er, hvor en behandlet event ikke bobler, så det var kun IE, som skulle forhindres i at behandle tingen på et højere niveau, når jeg f.eks. havde klikket på et link i et indre element !o]
Avatar billede olebole Juniormester
19. august 2005 - 20:52 #9
<ole>

Jeg byder ind med endnu en 'undrer'  :)

I princippet kan du noget à la:

<a href="http://www.domain.dk">
  <img src="billede.jpg" onclick="parentNode.onclick=function(){alert('ugh');return false};return false"></a>

- eller:
<a href="http://www.domain.dk">
  <img src="billede.jpg" onclick="parentNode.href='http://www.google.dk'"></a>

- men det er lidt tåget, hvad du vil. Jeg kan dog se, der er et nyt indlæg i tråden - så det kan være, jeg får et svar ....... *nu*


/mvh
</bole>
Avatar billede olebole Juniormester
19. august 2005 - 20:53 #10
Gecko forstår også 'cancelBubble' - men har en lidt anden brug  :)
Avatar billede thesurfer Nybegynder
19. august 2005 - 20:53 #11
Jeg har et X antal links, hvor "indholdet" (innerHTML) er et billedet. Man skal så kunne klikke på et billede, og muligvis få nogle muligheder.

Mht onclick:
Det er en evt <a href="..." onclick="whatever">...</a>. Hvis der står noget i onclick, i <a...>, vil jeg gerne kunne ændre det.. Men har ikke pt brug for RegExp til at undersøge det..

Nu hvor jeg tænker nærmere over det, behøver jeg vist ikke at ændre i a-onclick.. med mindre, at jeg ikke kan "stoppe" (return false) handling, så den ikke henter siden (altså href="...")


PS: Det er ikke min HTML fil, så jeg har ikke direkte adgang til kildekoden.. spøjst, ved det godt :-)

/theSurfer
Avatar billede olebole Juniormester
19. august 2005 - 20:55 #12
Jamen, meningen er stadig komplet sort. Vil du klikke på linket og rette dets href? Hvornår vil du så klikke på linket og udnytte den href?  :)
Avatar billede olebole Juniormester
19. august 2005 - 20:56 #13
Du kan bruge EVENT.stopPropagation() og EVENT.preventDefault() i Mozilla - afhængig af, hvad det er, der skal stoppes
Avatar billede olebole Juniormester
19. august 2005 - 20:59 #14
Avatar billede thesurfer Nybegynder
19. august 2005 - 20:59 #15
Hmm.. måske skulle jeg sætte mig ned, og tænke over hvad det er, jeg egentligt vil.. :-)

roenving og olebole> I har besvaret begge besvaret mine spørgsmål, så smid venligst et svar :-)

/theSurfer
Avatar billede olebole Juniormester
19. august 2005 - 21:22 #16
- det lyder i det midste ikke helt logisk i mine øren. Jeg fornemmer, vi snart tales ved igen  ;o)
Avatar billede roenving Novice
19. august 2005 - 21:25 #17
Tjah, man kunne tænke sådan, men jeg har hørt rygter om, at det igen bliver strandløve-sæson !-)

Velbekomme so far '-)
Avatar billede thesurfer Nybegynder
19. august 2005 - 21:31 #18
Hehe.. tja, vi mødes nok igen.. :-)

- (velfortjente) points givet.. :-)

/theSurfer
Avatar billede roenving Novice
19. august 2005 - 21:33 #19
Tak for point ;~}
Avatar billede olebole Juniormester
19. august 2005 - 21:41 #20
takker  ;o)
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