2016-05-12 3 views

Répondre

4

Le texte à l'intérieur des tags <script> n'a qu'une chose en commun: leur parent est un élément <script>.

if (node.parentNode.nodeName !== 'SCRIPT') 

Une autre approche consiste à utiliser le filtre:

var rejectScriptTextFilter = { 
 
    acceptNode: function(node) { 
 
    if (node.parentNode.nodeName !== 'SCRIPT') { 
 
     return NodeFilter.FILTER_ACCEPT; 
 
    } 
 
    } 
 
}; 
 

 
var walker = document.createTreeWalker(
 
    document.body, 
 
    NodeFilter.SHOW_TEXT, 
 
    rejectScriptTextFilter, 
 
    false 
 
); 
 

 
var node; 
 
var textNodes = []; 
 

 
while(node = walker.nextNode()) { 
 
    textNodes.push(node.nodeValue); 
 
} 
 

 
console.log(textNodes);
<script> var str = "script here"; </script> 
 
<p> text here </p>

0

Vous pouvez cloner le document d'origine, supprimer <script> éléments à clonée document, puis restant nœuds de itérer clonés document