9
votes

Comment obtenir le contenu du texte de l'ensemble du document?

Je suis en train de construire une extension chromée qui à un moment donné devrait déterminer la langue actuelle. Pour ce faire, mon plan est d'extraire le contenu du texte de la page (ou d'au moins une partie de celui-ci) et de le transmettre à l'API de la traduction. Cependant, je n'ai pas pu trouver de manière avancée du détroit de simplement obtenir tout textnode S du document.

Il existe un plan de sauvegarde qui doit analyser de manière récursive $ («corps»). Contenu () jusqu'à ce qu'il y ait suffisamment de contenu texte, mais cela se sent un peu floconneux. Peut-être qu'il y a une meilleure façon?


Remarque: API d'extensions Chrome permet à votre script d'accéder à la page d'utilisateur Dom comme si c'était la partie de celle-ci.


2 commentaires

Y a-t-il de quoi vous pouvez utiliser Python Executables dans le développement de l'extension chromé? Si oui, vous pouvez utiliser sgmlParser à partir de SGMLLIB Module pour y parvenir! pas très sûr comment faire cela en utilisant JS


Que faites-vous avec le code HTML complet de la page ???


6 Réponses :


7
votes

Utilisation de méthode texte jQuery () xxx


1 commentaires

Désolé pour Nitpick, mais vous voulez: $ («corps»). Texte ()



15
votes

sans jQuery, tout aussi facile: document.body.innertext;


4 commentaires

Innertext pour IE IE SEULEMENT, document.body.body.textContent autrement


Selon PPK, les deux sont plus ou moins croisés (Innertext étant absent dans Firefox, TextContent dans IE) quirksmode.org/dom/w3c_html.html


Ils sont différents: Stackoverflow.com/Questtions/1359469/...


Innertext est maintenant implémenté dans tous les navigateurs. Cela fonctionne bien et je le recommanderais. Voir Caniuse.com/innertext . De nombreux tutoriels sont toujours obsolètes et mentionnent son manque de compatibilité, mais non plus!



28
votes

JavaScript:

document.body.textContent


2 commentaires

Pour moi, en 2021 sur Chrome, cela obtient beaucoup plus que le texte. Un test rapide de cette question sur Wikipedia, par exemple, gère d'extraire beaucoup de CSS et de code en plus du texte de la page. document.body.innertext fonctionne cependant proprement.


Voici quelques informations sur innferext , textContent et les différences: htmlelement.innertext , TextContent et Innertext Différences




1
votes

vanillajs: xxx


0 commentaires

0
votes

Toutes ces méthodes retournent non définies lors de la tentative de la console avec chrome. xxx

etc ...


1 commentaires

La déclaration elle-même, var text = document.body.innertext; reviendra non défini, tout comme l'instruction var i = 5; retournera non définie. Tapez simplement document.body.innertext dans la console et vous verrez la sortie.