Domanda

  1. Ho una pagina con molti script a doppio clic
  2. Ho un codice js inserito nella parte superiore del corpo (tramite s.src= ('parts_async_dev.js')):

    var innerHTML = document.getElementsByTagName('html')[0].innerHTML.toString();
    var regexp = /ad.doubleclick.net/gm;
    var matches = innerHTML.match(regexp);
    alert('found ' + matches.length + ' tags by regexp ' + regexp);
    console.log( innerHTML);
    

alert dice che la corrispondenza restituisce solo 2 dei tag ad.doubleclick.net. Ho pensato prima che il codice non possa accedere a tutto il corpo se non posizionato nella parte inferiore del corpo. Ma trova 2 tag all'interno del div "interstitial_wrapper" che viene dopo il mio codice.

Quindi le mie domande sono:

  • perché è così
  • Come accedere a tutto il corpo del modulo di avvio del corpo (potrei non utilizzare l'evento "onload" del corpo. È necessario utilizzare lo script al più presto)

Dai un'occhiata a http://wap7.ru/folio/bannerstat/partners/doubleclick2.html e vedi la sorgente di visualizzazione, perché è troppo grande per essere inclusa qui.

È stato utile?

Soluzione

Non è necessario eseguire il binding all'evento onload.Basta eseguire il binding all'evento DOMContentLoaded.

Dato che hai già incluso jQuery nella tua pagina, puoi farlo facilmente utilizzando .ready :

$(document).ready(function() {
    var innerHTML = document.body.innerHTML;
    /* If you want to use a RegExp, use the following:
    var regexp = /ad\.doubleclick\.net/gi; // Note: escaped dot
    var matches = innerHTML.match(regexp);
    matches = matches ? matches.length : 0; // matches can be `null`
    */

    // This is more effective:
    var matches = innerHTML.split('ad.doubleclick.net').length - 1;
    alert('Found ' + matches + ' tags.');
    console.log( innerHTML );
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top