Avatar billede sk-man Nybegynder
02. november 2007 - 21:04 Der er 1 kommentar

Dynamisk markering af ord

Hej

Jeg er ude efter et script, der kan markerer ord i en tekst og evt genererer links. Jeg tænker på at have et array med ord som skal markeres.

Her er et eksempel som kan give en ide om hvad jeg mener:

http://forums.xbox-scene.com/index.php?c=149,161,137,140,166,141,145,177

Her bliver ord som "xbox 360", "iPod", "hard drive" osv, markeret automatisk og der bliver lavet noget link med onMouseOver. Så avanceret behøves det ikke at være.

Håber der er nogen der kan hjælpe
Avatar billede roenving Novice
03. november 2007 - 14:00 #1
For at få fat i teksten helt dynamisk skal du nok ud i noget sådant:

<script type="text/javascript">
var txts = [];
window.onload = function(){
  var rootElm = window.documentElement?window.documentElement : document.body;
  txts = testChilds(rootElm,txts);
  alert(txts[0].nodeValue);
}
function testChilds(elm,txts){
  var elms = elm.childNodes;
  for(var i=0,im=elms.length;im>i;i++){
    switch(elms[i].nodeType){
      case 1:
        txts = testChilds(elms[i],txts);
        break;
      case 3:
        if(elms[i].nodeValue && elms[i].nodeValue.length > 1)
          txts.push(elms[i]);
        break;
      default:
    }
  }
  return txts;
}
</script>

-- eksemplet er kun lavet for at vise, hvordan du finder teksterne, du skal selvfølgelig i stedet for at smide teksterne i et array, analysere dem for dine ord, og erstatte dem med en ny link- eller span-node, som har de interessante egenskaber !-)
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