2016-07-04 15 views
8

Come this answer indica, un buon modo per analizzare HTML in JavaScript è semplicemente ri-utilizzare le funzionalità di HTML di analisi del suo navigatore web in questo modo:Analizza una stringa HTML con JS senza attivare carichi di pagina?

var el = document.createElement('html'); 
el.innerHTML = "<html><head><title>titleTest</title></head><body><a href='test0'>test01</a><a href='test1'>test02</a><a href='test2'>test03</a></body></html>"; 
// process 'el' as desired 

Tuttavia, questo fa scattare il caricamento di pagine in più per alcune stringhe di codice HTML, per esempio :

var foo = document.createElement('div') 
foo.innerHTML = '<img src="http://example.com/img.png">'; 

Non appena questo esempio viene eseguito, il browser tenta di caricare la pagina:

enter image description here

Come posso elaborare HTML da JavaScript senza questo comportamento?

risposta

0

Non so se c'è una soluzione perfetta per questo, ma poiché questo è solo per l'elaborazione, è possibile prima di assegnare innerHTMl sostituire tutti gli attributi src per essere notSrc = "xyz.com", in questo modo non sarà caricato e se ne hai bisogno in seguito nell'elaborazione puoi tenerne conto. Il browser carica principalmente immagini, script e file css, questo risolve i primi 2, il css può essere fatto sostituendo l'attributo href.

0

Se si desidera analizzare la risposta HTML senza caricare risorse non necessarie come immagini o script, utilizzare il comando createHTMLDocument() di DOMImplementation per creare un nuovo documento che non è connesso a quello corrente analizzato dal browser e si comporta come un normale documento .