He escrito una línea para la sección de tamaño automático según el tamaño de la ventana interior. Funciona correctamente en la página donde está presente la sección. Sin embargo, cuando abro otras páginas, el script se detiene porque no hay tal sección (#mainSection) en otras páginas:

window.addEventListener('resize',function(){
    document.getElementById("mainSection").style.height = (window.innerHeight - 86) + 'px';
});

¿Hay alguna forma de ignorar este código en otras páginas y continuar con el script? ¿O hacerlo de manera que este script se ejecute solo en index.php?

¡Gracias!

0
Benua 22 feb. 2018 a las 12:11

2 respuestas

La mejor respuesta

¿Hay alguna forma de ignorar este código en otras páginas y continuar con el script?

Puede vincular el oyente solo si section está presente.

document.addEventListener( "DOMContentLoaded", function(){ 
   var section = document.getElementById("mainSection"); 
   !!section && window.addEventListener('resize', function(){ 
      section.style.height = (window.innerHeight - 86) + 'px';
   });
});

Nota

  • En el código anterior, se asume que una vez que se carga el DOM, section estará presente o no.
1
gurvinder372 22 feb. 2018 a las 09:13
<div id="hello"></div>
<script type="text/javascript">
    if(document.getElementById('hello')){
        document.write('done');
    }else{
        document.write('fail');
    }
</script> 
1
bhavingandha9 22 feb. 2018 a las 09:25