2013-04-02 8 views
6

Mam fragment HTML, który jestem objectifying przez jQuery w celu wydobycia z niego niektórych danych. Ten fragment zawiera zasoby graficzne, których nie chcę pobierać do przeglądarki. Czy jest sposób, aby to zrobić?Czy istnieje sposób, aby zapobiec ładowaniu obrazów w jQuery zobiektywizowany fragment HTML

Uproszczona wersja mojego aktualnego kodu:

var html = '<p class="data">Blah Blah</p>...<img src="https://stackoverflow.com/a/b/...png">...<div>...</div>'; 

var obj = $(html); // this makes the browser download the contained images as well!!! 

var myData = { 
    item_1: obj.find('.data:first').text(), 
    item_2: obj.find('.data2:first').text(), 
    .... // and so on.. 
}; 

Odpowiedz

4

Chyba że uważasz, że będzie wystąpień podciągu src= w struny, które są dla Ciebie ważne, można zrobić:

html = html.replace(/src=/g, "data-src="); 

lub prawdopodobnie

html = html.replace(/src\s*=/g, "data-src="); 

... w celu uwzględnienia białych znaków. W ten sposób przeglądarka nie zobaczy atrybutu src i nie uruchomi pobierania.

Czasami bezpośrednie podejście jest najlepsze. Oczywiście, jeśli uważasz, że mogą istnieć podciągi, które będą miały znaczenie pod względem tego, co próbujesz wyodrębnić, to ...

+1

Dziękuję. Nie myśl, że będę miał 'src =' w dowolnym miejscu danych, które muszę wyodrębnić. To powinno działać. (nie mogę uwierzyć, że nie mogłem o tym pomyśleć!) – techfoobar

+0

Działa idealnie. :) – techfoobar

+0

Ta odpowiedź brzmi znajomo. Hmmm [ah tak] (http://stackoverflow.com/questions/2302129/construct-a-dom-tree-from-a-tring- bez wyładowania-resources-specifically-image/2302157#2302157);) –

Powiązane problemy