2010-11-20 25 views
7

Estoy construyendo una extensión de Chrome que en algún momento debería determinar el idioma actual de la página. Para hacer eso, mi plan es extraer el contenido de texto de la página (o al menos una parte) y pasarlo a la API de traducción. Sin embargo, no pude encontrar ningún camino directo para obtener todos los textNode s del documento.¿Cómo obtener el contenido de texto de todo el documento?

Existe un plan de copia de seguridad que consiste en analizar recursivamente $('body').contents() hasta que haya suficiente contenido de texto, pero se siente un poco escamoso. Tal vez hay una mejor manera?


Nota: Chrome extensiones API permite a su script para acceder a la página de usuario dom como si fuera parte de ella.

+0

es que hay forma de poder utilizar los ejecutables de pitón en el desarrollo de cromo-extensión? Si es así puedes usar 'SGMLParser' del módulo' sgmllib' para lograr eso! no estoy muy seguro de cómo hacer esto usando js –

+0

¿qué haces con el html completo de la página? – kobe

Respuesta

8

Utilizando el jQuery text() method

$('body').text() 
+0

Cegadoramente obvio;) – artemave

+0

Lo siento nitpick, pero desea: '$ ('body'). Text()' – szeryf

+0

@szeryf sí su derecho. Mis disculpas y buena captura! –

10

Sin jQuery, igual de fácil: document.body.innerText;

+6

innerText para IE solamente, document.body.textContent de lo contrario – kennebec

+0

De acuerdo con PPK, ambos son más o menos navegador cruzado (innerText está ausente en Firefox, textContent en IE) http://www.quirksmode.org/dom/w3c_html. html – pawel

+2

Aunque son diferentes: http://stackoverflow.com/questions/1359469/innertext-works-in-ie-but-not-in-firefox/1359822#1359822 –

10

Javascript:

document.body.textContent 
Cuestiones relacionadas