Pregunta

  1. Tengo una página con muchas secuencias de comandos de doble clic
  2. Tengo un código js insertado en la parte superior del cuerpo (a través de 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 que coincide con sólo 2 de las etiquetas ad.doubleclick.net. Primero pensé que el código no puede acceder a todo el cuerpo si no se coloca en la parte inferior del cuerpo. Pero encuentra 2 etiquetas dentro del div "interstitial_wrapper" que viene después de mi código.

Entonces, mis preguntas son:

  • por qué es tan
  • Cómo acceder a todo el cuerpo desde el inicio del cuerpo (no puedo usar el evento body 'onload'. Es necesario usar el script lo antes posible)

Consulte http://wap7.ru/folio/bannerstat/partners./doubleclick2.html y ver la fuente de la vista, porque es demasiado grande para incluirla aquí.

¿Fue útil?

Solución

No es necesario que se vincule al evento onload.Solo vincula al evento DOMContentLoaded.

Dado que ya incluyó jQuery en su página, esto se puede hacer fácilmente usando .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 );
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top