Newsgroup: it.comp.lang.javascript
Titolo: querySelector <!--

E' possibile selezionare un commento "<!--" con querySelector?
Se no, esiste un sistema?

 Se no, esiste un sistema?
Sparo la prima che mi viene.
Così recuperi tutti i commenti:
var s = "",
     tw = document.createTreeWalker(document.documentElement,
                                    NodeFilter.SHOW_COMMENT,
                                    {acceptNode: function(node){
                                        return NodeFilter.FILTER_ACCEPT;
                                     }
                                    },
                                    false);
while(tw.nextNode())
     s += tw.currentNode.data + "\n";
alert(s);
Vedi:
https://developer.mozilla.org/en/DOM/document.createTreeWalker
http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html#Traversal-TreeWalker
Come sempre dovrebbe funzionare in tutti i browser moderni, per quanto 
riguarda il solito noto non so: manco stavolta ho provato.

Andrea Scartabelli ha scritto quanto segue il 18/12/2010 12.51>

Sei un grande :)
Con questo sistema si potrebbero togliere anche gli spazi, i tab, gli a 
capo... ?

Andrea Scartabelli ha scritto quanto segue il 18/12/2010 12.51>

Funziona, ma mi prende i commenti tipo:
<!--
commento
-->
mentre tralascia quelli tipo:
<!-- commento -->
Si possono togliere anche gli altri?

 capo... ?
Perché parli di togliere, se fino ad ora hai fatto domande sull'individuare?
Puoi beccare i nodi di testo cambiando i filtri del TreeWalker, questo 
sě, ma che stai facendo esattamente? E sei sicuro che valga la pena di 
farlo sul client?

 Si possono togliere anche gli altri?
Ti rispondo molto di corsa e mi sa che non potrò seguirti fino a lunedì.
A me individua tutti i commenti, sia su una che su più righe, in una 
pagina xhtml: prova quindi a farci vedere un codice di esempio.
Aggiungo una postilla, visto che in un thread precedente dicevi che ti 
sarebbero bastati metodi "gecko only": dopo averti scritto il codice ho 
fatto una prova per curiosità in una chrome window in una mia 
applicazione XUL e, non so perché, lì mi becca tutti i nodi che voglio 
tranne i commenti (su una o su più righe).
Ho provato per curiosità anche con un NodeIterator ottenendo lo stesso 
risultato.
Ripeto che invece va tutto perfettamente in una pagina xhtml: ho poi 
provato con le ultime versioni di firefox, chrome, opera e safari.
Non ho indagato il perché dello strano comportamento su XUL, poi magari 
indagherò: non ci vuol niente che abbia fatto un errore io nella fretta 
del test.
Se altri usano XUL e gli va di fare una prova... ben venga.
A lunedì.

 esiste un sistema?
Una possibile soluzione usando il DOM (magari va anche in IE, almeno 
nelle versioni recenti) potrebbe essere un qualcosa del tipo:
window.onload=function() {
	cicla();
}
function cicla(node) {
 var doc=node||document.documentElement,
     child=doc.childNodes;
 for(var i=0;i<child.length;i++) {
     if(child[i].nodeType==8)
	alert(child[i].nodeValue);
     if(child[i].hasChildNodes())
 	cicla(child[i]);
 } 
}

Cristiano Larghi ha scritto quanto segue il 19/12/2010 10.00>

Tradizionale, ma molto più efficace :)
-- 
http://interno.comze.com

 Tradizionale, ma molto più efficace :)
e, a naso, un po' più compatibile ...