Avatar billede chrisbookwood Nybegynder
27. december 2008 - 06:16 Der er 11 kommentarer

Få link destination hver gang og præcist

Halløj,

jeg har lavet ( læs: er igang med ) en extension, i javascript, til browseren Epiphany, så den imitere Google Chrome hvad angår status baren på browseren, men jeg er stødt på nogen præcisions problemer, hvad angår at vise link distinationen.
Når jeg skal have fat i url'n på det link musen er ovre, bruger jeg; event.target.getAttribute( 'href' );, men det er ikke altid det er nok. Nogen gange er linksne nemlig kun beskrevet som foo-paths, så der kun står /path/path/name, og nogen gange kan getAttribute( 'href' ) overhovedet få fat i destinationen, simpel den står skrevet rigtigt på siden, så jeg leder efter den bedste måde at slippe af med de to problemer.

Jeg ønsker at hvis det er en foo-path linket har beskrevet, så skal den udskiftes med en fuldkommen sti, men hvorfor gør jeg det aller smartest og solidt?

Når jeg nu siger at den ikke rigtigt kan få fat i href-værdien på links, så kan jeg ikke samtidig komme med en begrundelse på hvorfor, men jeg kan frembringe det på google.com. Hvert andet link, ca., til et resultat gider ikke vises, men jeg kan ikke se noget mønster i det, så jeg kan finde ud af hvorfor desværre.

Jeg håber i kan hjælpe mig.
Avatar billede chrisbookwood Nybegynder
27. december 2008 - 07:37 #1
Hvad angår stavefejl og/eller mærkelige sætninger, med helt forkerte ord proppet i, i ovenstående tekst, må i meget undskylde, men det er altså resultatet af en god julefrokost:)
Avatar billede olebole Juniormester
27. december 2008 - 16:26 #2
<ole>

Det må du vist prøve at vise. I udgangspunktet kan du slet ikke aflæse noget i et fremmed dokument - så jeg forstår ikke spor af, hvad det er, du har gang i  =)

/mvh
</bole>
Avatar billede roenving Novice
28. december 2008 - 12:42 #3
-- og det bliver bestemt ikke nemmere af, at i hvert fald jeg ikke kender det fjerneste til 'browseren Epiphany', som jo kan være bygget på de mærkeligste måder !-)
Avatar billede chrisbookwood Nybegynder
28. december 2008 - 21:45 #4
Ole, jeg skal ikke aflæse noget i et fremmed dokument. Jeg skal blot have fat i destinations-url'n på link-tagsne' (<a*> = dvs. href attributens værdi) hvilket så skal vises når musen føres over de forskellige links.

Roennving, epiphany browseren er en, som standard, webbrowser bygget over gecko motoren. Den har de bedste færdigheder fra Firefox, men hvis du spørger mig, er den mere komplet på visse punkter -- den kræver ikke så mange resurser som firefox gør og så er den til tider også hurtigere.
Ydermere kan det være ligegyldigt hvad du ved om browseren, da der er helt komplient javascript jeg bygger udvidelse af, og så inplementeres det bare i browseren via greasemonkey udvidelsen.

Her kan i se en build-page over projektet, og i kan også se kildekoden til udvidelsen ved at trykke på install linket på hjemmesiden, og så bare åbne filen ( hvilket er en .js fil ) i jeres browser, ja eller i jeres yndlings editor. Det må i selv om;)
http://dl.getdropbox.com/u/168187/Projects/CSBar/csbar.html
Avatar billede chrisbookwood Nybegynder
29. december 2008 - 20:04 #5
Jeg ved det ikke er pænt, men... *bump*
Avatar billede olebole Juniormester
29. december 2008 - 21:07 #6
Kan dette forklare noget?

<script type="text/javascript">
function foo(e) {
    var oSrc = e.target ? e.target : e.srcElement;
    document.getElementById("fooBar").firstChild.nodeValue = "EVENT.target er et " + oSrc.nodeName + "-element";
}
</script>

<a onmouseover="foo(event)" href="http://www.eksperten.dk/"><span>Her står <b>noget fed</b> tekst</span> - og noget mere</a>

<p id="fooBar">&nbsp;</p>
Avatar billede olebole Juniormester
29. december 2008 - 21:13 #7
Det kan i hvertfald nok forklare, hvorfor du somme tider ikke kan hente href'en fra linket. Lad handleren medsende en reference til linket og brug den i stedet.
Avatar billede chrisbookwood Nybegynder
29. december 2008 - 21:28 #8
olebole; mange tak for idéen - det hjalp mig til at finde ud af hvorfor det ikke virker... Problemet er faktisk ikke, at det ikke virker, men at f.eks. på google bliver der i resultat linksne smidt en span rundt om det/de ord man søger på, så når du holder musen over den del af a-tagget hvor span elementet er, tror CSBar ikke det er et link den holder musen over.

Løsningen måde jo så være bare at smide tricker-eventen på a-tagget og alle dens child-elementer. Eller er der en smartere måde?
Avatar billede roenving Novice
30. december 2008 - 12:07 #9
Send referencen til a-tagget med:

<a onmouseover="foo(this,event)" ...
Avatar billede chrisbookwood Nybegynder
30. december 2008 - 12:14 #10
Det er jeg ikke sikker på jeg forstod, roenving?
Avatar billede roenving Novice
30. december 2008 - 12:28 #11
this vil være en reference til det aktuelle element, her a-tagget, hvorfor du vil kunne bruge det uanset der skulle være et underelement, for at bruge en modificeret udgave af oles:

<script type="text/javascript">
function foo(oSrc,e) {
    document.getElementById("fooBar").firstChild.nodeValue = "Elementet, der kaldes fra, er et " + oSrc.nodeName + "-element";
}
</script>

<a onmouseover="foo(this,event)" href="http://www.eksperten.dk/"><span>Her står <b>noget fed</b> tekst</span> - og noget mere</a>

<p id="fooBar">&nbsp;</p>
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