1485 sujets

Web Mobile et responsive web design

Bonjour

J'utilise matchMedia pour insérer des scripts à partir d'une certaine taille du navigateur et je me suis inspirée de l'article http://www.alsacreations.com/article/lire/1500-matchmedia-javascript-media-queries.html.
Pour que cela marche sous IE < 10, j'utilise media.match https://github.com/weblinc/media-match (j'ai essayé pleins d'autres solutions comme enquire, respond ou matchmedia sans y arriver).
Mon problème : ça marche bien mais sous Firefox, j'ai les scripts en double et je ne sais pas comment résoudre ça...

Dans ma page :


[<script src="(#CHEMIN{js/media.match.min.js})" type="text/javascript"></script>]

<script type="text/javascript">

if(window.matchMedia("screen and (min-width:1023px)").matches) {
  
  var script2 = document.createElement('script');
  script2.type='text/javascript';
  script2.src = '#CHEMIN{js/jquery.mousewheel.min.js}';

  var script3 = document.createElement('script');
  script3.type='text/javascript';
  script3.src = '#CHEMIN{js/jquery.mCustomScrollbar.min.js}';
  
  var script4 = document.createElement('script');
  script4.type='text/javascript';
  script4.src = '#CHEMIN{js/jquery.debouncedresize.js}';
  
  var script5 = document.createElement('script');
  script5.type='text/javascript';
  script5.src = '#CHEMIN{js/custom.js}';

  // Insertion dans le DOM des scripts
  document.getElementsByTagName('body')[0].appendChild(script2);
  document.getElementsByTagName('body')[0].appendChild(script3);
  document.getElementsByTagName('body')[0].appendChild(script4);
  document.getElementsByTagName('body')[0].appendChild(script5);

}





Merci
Modifié par cilou (29 Aug 2013 - 15:47)
Bonjour

J'ai remplacé body par section et FF n'appelle plus mes scripts 2 fois


document.getElementsByTagName('body')[0].appendChild(script2);

en 

document.getElementsByTagName('section')[0].appendChild(script2);



Comme le site est sous Spip, il insère encore des balises (comme la mediabox) après le chargement de la page avant la fermeture du body et du coup je suppose que c'est pour ça que le script "travaillait" 2 fois...