Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

JS funkcija za strip HTML tagova? Ova mi pravi probleme

[es] :: Javascript i AJAX :: JS funkcija za strip HTML tagova? Ova mi pravi probleme

[ Pregleda: 2440 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

protech_v2
protech_v2
Novi Sad

Član broj: 12426
Poruke: 169
*.dynamic.sbb.co.yu.



+12 Profil

icon JS funkcija za strip HTML tagova? Ova mi pravi probleme15.05.2007. u 17:58 - pre 171 meseci
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!
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
*.dynamic.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: JS funkcija za strip HTML tagova? Ova mi pravi probleme15.05.2007. u 18:42 - pre 171 meseci
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
Never trust an operating system you don't have sources for.
 
Odgovor na temu

protech_v2
protech_v2
Novi Sad

Član broj: 12426
Poruke: 169
*.dynamic.sbb.co.yu.



+12 Profil

icon Re: JS funkcija za strip HTML tagova? Ova mi pravi probleme16.05.2007. u 02:24 - pre 171 meseci
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
 
Odgovor na temu

[es] :: Javascript i AJAX :: JS funkcija za strip HTML tagova? Ova mi pravi probleme

[ Pregleda: 2440 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.