Chargement d'une publicité avec Angular

Problème lorsque je change de route

a marqué ce sujet comme résolu.
Auteur du sujet

Salut, J’ai un problème que j’essaye depuis 3h de résoudre cet aprem, sans succès :pirate:

J’ai une pub qui se trouve dans un partial, c’est à dire un bout de html qui est chargé après le chargement de la page. Le partial contient du javascript, il n’est normalement pas chargé par le navigateur puisque le chargement du javascript se passe au début du chargement de la page. J’ai donc utilisé une technique qui détecte le javascript dans un partial et qui force à le charger.

1
2
3
4
<div id="ma-publicite"></div>
<script type="text/javascript-lazy">
  chargementDeLaPub();
</script>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
app.directive('script', function () {
  return {
    restrict: 'E',
    scope: false,
    link: function(scope, elem, attr) {
      if (attr.type == 'text/javascript-lazy') {
        var code = elem.text();
        var f = new Function(code);
        f();
        }
    }
  };
});

Le problème étant que lorsque je charge un autre partial (en changeant de page avec le module ui.router). Lorsque je revient à la page contenant la pub, celle-ci ne s’affiche plus. Le javascript est pourtant bien chargé mais il semblerait qu’il y ait un problème avec la DOM, or mon javascript est dépendant de la DOM (id ma-publicite) pour s’afficher…

J’ai donc essayé de contourner le problème en créant un iframe chargant la pub, ainsi il n’y aurait plus de problème. Mais mon code ne marche pas, puis en plus je doute que ma technique marche correctement.

Un résultat en live est dispo à cette adresse: Site en construction, le problème étant que les pubs ne s’affichent pas tout le temps donc je doute que cela soit très utile…

Merci, Seb

Édité par Seb

Seb.

+0 -1
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte