[JavaScript] link herkennen en aanpassen

Pagina: 1
Acties:

  • ConQuestador
  • Registratie: November 2000
  • Laatst online: 16:13
Ik wil graag de links in een pagina, die mijn javascript runt, herkennen en afvangen. Ik heb al een stukje script dat hier ooit eens door iemand gepost is:

for(i=0 ; i < document.links.length ; i++)
{
aap = new String(document.links[i].onclick);
if(aap.toLowerCase().indexOf('function')==-1);
{
var delink = document.links[i];
document.links[i].onclick = function () {alert(delink)};
}
if(aap.toLowerCase().indexOf('function')!=-1)
{
p1 = aap.substr(0 , aap.toLowerCase().indexOf('{')+1);
p2 = aap.substr(aap.toLowerCase().indexOf('{')+1);
eval("document.links[i].onclick = "+p1+"alert(document.links[i]); "+p2);
}
}

Het probleem nu is alleen dat ie altijd de laatste link geeft. Dit komt doordat hij var delink gebruikt en deze steeds weer overschreven wordt. wie weet hoe dit wel kan???

Panasonic 12J T-CAP | Atlantic Explorer 270L | 4 x MHI SRK24ZS-WF + SRF35ZS-W | 12.000 Wp Enphase | Home Assistant, Heishamon, Mhi-ctrl | Alfa Romeo Giulia Veloce


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Doet iets met Cloud (MS/IBM)


  • MisterData
  • Registratie: September 2001
  • Laatst online: 26-08 21:52
Dit moet eigenlijk in de W&G :) D2k bedankt :*

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 18:12

RM-rf

1 2 3 4 5 7 6 8 9

code:
1
2
3
p1 = aap.substr(0 , aap.toLowerCase().indexOf('{')+1);
p2 = aap.substr(aap.toLowerCase().indexOf('{')+1);
eval("document.links[i].onclick = "+p1+"alert(document.links[i]); "+p2);


hier klopt volgens mij niks van,
maar als je ergens document.links[i] 'hard' wegschrijft zal hij die i uitvoeren op moment van aanroepen (het onclick-event); i is dan idd de laatste i, immers de hele loop is doorlopen

waarschijnlijk wil je:
code:
1
eval("document.links[i].onclick = "+p1+"alert(document.links["+i+"]); "+p2);


of eventueel is werken met this waarschijnlijk nog beter

(niet te spreken dat ik vermoed dat die gehele code te optimaliseren is, eval is evil, en altijd te voorkomen)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • ConQuestador
  • Registratie: November 2000
  • Laatst online: 16:13
helaas.. nu krijg ik undefined.

dat stukje van eval word alleen gebruikt als er al een functie bij onclick staat, zodat mijn functie hier ook nog eens bij komt... let wel ik heb dit gewoon geript, en wil het werkende krijgen. Tis dus niet mijn eigen, maar ik heb het wel nodig

Panasonic 12J T-CAP | Atlantic Explorer 270L | 4 x MHI SRK24ZS-WF + SRF35ZS-W | 12.000 Wp Enphase | Home Assistant, Heishamon, Mhi-ctrl | Alfa Romeo Giulia Veloce


  • ConQuestador
  • Registratie: November 2000
  • Laatst online: 16:13
eval("document.links[i].onclick = "+p1+"alert(document.links["+i+"]); "+p2);


hmmm indd. dat wilde ik daar ook. Maar dat is niet wat de fout opleverd. Het probleem is dat i inderdaad uiteindelijk de waarde heeft van de laatste link. maar ik wil bij elke link zijn eigen nummer.

Panasonic 12J T-CAP | Atlantic Explorer 270L | 4 x MHI SRK24ZS-WF + SRF35ZS-W | 12.000 Wp Enphase | Home Assistant, Heishamon, Mhi-ctrl | Alfa Romeo Giulia Veloce

Pagina: 1