Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

JS funkcija za strip HTML tagova? Ova mi pravi probleme

  • 2 odgovora
  • 3.418 pregleda

Najnovija ↓

JS funkcija za strip HTML tagova? Ova mi pravi probleme 15.05.2007. u 18:58 · pre 236 meseci #1
Pozdrav!

Moze neki predlog JS funkcije koja ce extraktovati text iz HTML-a? Znaci u principu samo vratiti sve bez HTML tagova, to mi sasvim odgovara...

Dakle ako imam

Code:
<font size="1"><p>neki text pa broj <span> 10 </span></p></font>


treba da mi vrati "neki text pa broj 10" :)

Probao sam sa ovako necim, rekurzija, ali pravi mi mrtvu petlju u nekim slucajevima, ne mogu nikako da nadjem zasto...

Code:
function AUI_striptext(HTML){

    a = HTML.indexOf("<");
    b = HTML.indexOf(">");

    HTMLlen = HTML.length;

    c = HTML.substring(0, a);
    
    if(b == -1)
    b = a;

    d = HTML.substring((b + 1), HTMLlen);

    Word = c + d;

    tmp = Word.indexOf("<");

    if(tmp != -1)
    Word = AUI_striptext(Word);

    return Word;
}


Hvala!
Re: JS funkcija za strip HTML tagova? Ova mi pravi probleme 15.05.2007. u 19:42 · pre 236 meseci #2
Potpuno ti je pogresan pristup problemu. Nema apsolutno nikakvog smisla da sa indexOf "lovis" tagove, kada je iz javascripta na raspolaganju DOM.
Resenje je da prodjes kroz sve nodove u dokumentu, da proveris njihov tip i nadjes sve koji imaju tip TEXT_NODE i uzmes njihovu sadrzaj, tj text.

DOM generalno:

http://developer.mozilla.org/en/docs/DOM

a ovde posebno obrati paznju na childNodes, nodeType i nodeValue, to je ono sto ti konkretno treba da bi uradio to sto hoces:

http://developer.mozilla.org/en/docs/DOM:element
Potpis
Never trust an operating system you don't have sources for.
Re: JS funkcija za strip HTML tagova? Ova mi pravi probleme 16.05.2007. u 03:24 · pre 236 meseci #3
Hvala na dobrom odgovoru!

Prvo nisam hteo da se zezam sa traversiranjem DOM tree-ja, ali ispade stvarno na kraju najbolje resenje, a plus nisam ni znao da postoje pomocne varijante u vidu odlicnog TreeWalkera, doduse IE ovo ne podrzava:

Code:
var rootnode=window.content.document.documentElement; //zameniti sa odgovarajucim kodom, ovo je iz Firefox extenzije
var walker=document.createTreeWalker(rootnode, NodeFilter.SHOW_TEXT, null, false);
while (walker.nextNode()) bodyText += walker.currentNode.nodeValue;


Tri reda! :)

http://www.javascriptkit.com/dhtmltutors/treewalker.shtml
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme