La Ferme du web - Les forums

Venez baraguiner avec la communauté !

Vous n'êtes pas identifié.

#1 22/02/2011 17:49:59

Anoxie
Membre
Date d'inscription: 22/02/2011
Messages: 6
Site web

Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

Bonjour,

Merci pour ce tuto, contrairement à ce que j'ai pu lire sur ce forum, le seul que j'ai trouvé en français, donc le meilleurs big_smile. J'apprends vraiment beaucoup de chose avec ce tuto. J'ai appris à coder en php sur la toile, mais je n'ai pas encore vraiment eu le temps de pencher sur le javascript, et la je rencontre un problème assez gênant que je n'arrive pas à résoudre même après avoir consulter la doc Facebook.

En fait avec firefox 4, et parfois avec firefox 3.6, ma frame ne se redimensionne pas du tout avec le 4 et uniquement quand la page dépasse largement avec firefox 3.6.

Sinon marche nickel avec chrome et ie.

Voilà si vous rencontrez aussi ce problème, et si vous savez comment le résoudre je suis tout ouïe.

Cordialement.

Hors ligne

 

22/02/2011 17:49:59

Botte De Foin Publicitaire


#2 23/02/2011 10:19:11

codegrabber
Membre
Date d'inscription: 31/12/2009
Messages: 96

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

salut,

ta question a t'elle un rapport avec le tuto ?
si oui poste ton code, si non alors merci d'ouvrir un autre topic et de mettre ton code dedans, car sans code on ne peut pas facilement t'aider wink

Hors ligne

 

#3 23/02/2011 17:44:05

DJo
Administrateur
Date d'inscription: 31/07/2008
Messages: 569
Site web

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

Anoxie > J'ai déjà eu ce problème aussi. Je n'ai jamais réussi à le résoudre, je pense que ça vient du fait que le JS Facebook est mal appelé, ou que la page est mal chargée. Mais ça arrive assez rarement de mon côté.
Tu peux reproduire le problème à chaque fois ?

Hors ligne

 

#4 23/02/2011 19:56:10

Anoxie
Membre
Date d'inscription: 22/02/2011
Messages: 6
Site web

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

Le bout de code incriminé :

Code:

<div id="fb-root"></div>
        <script src="http://connect.facebook.net/fr_FR/all.js"></script>
<script>
  FB.init({
    appId  : '<?php echo FB_APP_ID; ?>',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
  });

  window.fbAsyncInit = function() {
    FB.Canvas.setAutoResize();
  };

</script>

Sur firefox 4 ça me le fait à chaque fois, mais sur 3.6 c'est aléatoire, certaines pages se redimensionnent bien alors que d'autres non.

J'avais trouver un topic sur le forum facebook d'une personne ayant le même problème avec firefox mais sans qu'il n'y ai de réponse.

Vu que pour ce que j'en sais, le javascript s'exécute côté client, que le code envoyer au navigateur est correct, et que cela fonctionne dans ie et chrome, j'imagine qu'on peut dire que c'est du à Firefox, non ? C'est relativement fâcheux surtout dans la mesure ou l'application que je développe est un classement, souvent à rallonge, donc avec une grande hauteur...

Dernière modification par Anoxie (23/02/2011 19:58:10)

Hors ligne

 

#5 23/02/2011 21:30:24

DJo
Administrateur
Date d'inscription: 31/07/2008
Messages: 569
Site web

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

Oui c'est assez problématique, ça m'est aussi déjà arrivé, mais je n'ai pas réussi à identifier précisément le problème. Si tu trouves des réponses, n'hésites pas à partager smile

Hors ligne

 

#6 23/02/2011 21:40:51

Anoxie
Membre
Date d'inscription: 22/02/2011
Messages: 6
Site web

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

Alors je pense avoir trouver la solution mais je ne sais pas comment la mettre en oeuvre moi pas comprendre alors moi pas tenter n'importe quoi :-)

une solution ici

d'après ce que je comprend il faut inclure jQuery en plus, mais comme je suis pas tout à fait sûr j'aimerais vos avis. C'est surtout la dernière phrase qui me pose problème :

You'll need to have jquery for "$(document).ready(function(){" bit to work as it won't work untill the js has loaded.

Est-ce que ça ne va pas tout simplement dire qu'il faut déclarer jQuery ?

Je sais qu'il est possible d'utiliser jQuery depuis les serveur de google comme expliqué ici.

En fait c'est surtout la dernière phrase que je ne comprend pas

Hors ligne

 

#7 23/02/2011 22:03:08

Anoxie
Membre
Date d'inscription: 22/02/2011
Messages: 6
Site web

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

Bon alors n'écoutant que mon courage, j'ai testé la solution évoqué sur le post précédent, et ...

ça marche big_smile mais uniquement pour firefox 3.6 pour le 4 nada...

Il faut bien appeler jQuery avant d'insérer le code. Donc j'ai mis :


Code:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
<?php if (!jQuery) {
    document.write('<script src="/js/jquery.min.js"></script>');
}
?>
</script>

Et puis ça en footer :

Code:

<script>
FB_RequireFeatures(["CanvasUtil"], function()
    {
              //You can optionally enable extra debugging logging in Facebook JavaScript client
      //FB.FBDebug.isEnabled = true;
      //FB.FBDebug.logLevel = 4;

      FB.XdComm.Server.init("xd_receiver.html?v=2");
      FB.CanvasClient.startTimerToSizeToContent();
    });


    function onWindowResized(info)
    {
      var canvasInfoDiv = document.getElementById("CanvasInfo");
      var text = String.format("window ({0}, {1}), page ({2}, {3}), canvas({4}, {5}), scrollPos({6}, {7}), canvasPos({8}, {9})", 
        info.window.w, info.window.h,info.page.w, info.page.h,
        info.canvas.w, info.canvas.h,
        info.scrollPos.x, info.scrollPos.y,
        info.canvasPos.x, info.canvasPos.y);
      canvasInfoDiv.innerHTML = text;
    }
$(document).ready(function(){
FB.CanvasClient.add_windowSizeChanged(onWindowResized);
});
</script>

Voilà par contre je ne comprends toujours pas pourquoi ça ne marche pas avec firefox 4.0 peut-être parce qu'il s'agit encore d'une bêta ?

Dernière modification par Anoxie (24/02/2011 14:45:10)

Hors ligne

 

#8 24/02/2011 07:59:35

DJo
Administrateur
Date d'inscription: 31/07/2008
Messages: 569
Site web

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

Ok, c'est bien ce qui me semblait, une histoire de load de page. En gros il faut attendre de charger complètement la page pour appliquer l'auto resize.
Peut être que Firefox est trop rapide :p

Merci pour le feedback !

Hors ligne

 

#9 24/02/2011 13:58:03

codegrabber
Membre
Date d'inscription: 31/12/2009
Messages: 96

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

salut,

dans le 1er snippet, pourquoi il y a des tags php dans le javascript ??? j'ai pas essayé mais selon moi cela n'a rien à faire là non ?

et sinon autre remarque sur le test de jquery toujours, je pense qu'il serait plus optimisé et juste de faire cela :

Code:

if (typeof jQuery == 'undefined')

qu'en dites vous ?

a+

Olivier


PS : pour compléter ce que je disais ci-dessus, voici un snippet que j'utilise pour charger en local jquery dans le cas où le cdn ne soit pas joignable :

Code:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript"> if (typeof jQuery == 'undefined') { document.write("<script type=\"text/javascript\" src=\"<?php echo DIR_ROOT_ABS.DIR_JS; ?>jquery-1.5.min.js\"></"+"script>"); } </script>

Dernière modification par codegrabber (24/02/2011 13:59:31)

Hors ligne

 

#10 24/02/2011 15:03:16

Anoxie
Membre
Date d'inscription: 22/02/2011
Messages: 6
Site web

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

En effet, les balises <?php ?> n'ont rien à faire la, c'est simplement moi qui en gros boulet les ai rajouté en croyait voir du php roll.

C'est corrigé dans mon code et optimisé selon vos conseils.

Par contre j'ai encore un petit soucis avec l'autoresize. Dans chrome je constate que la taille de la frame reste sur la hauteur de la plus haute page ouverte, et qu'elle ne se redimensionne pas quand la page redevient plus petit. donc je me retrouve parfois avec de grand blanc en dessous de mon footer, c'est beaucoup moins gênant
mais quand même...

Dernière modification par Anoxie (24/02/2011 15:03:43)

Hors ligne

 

#11 24/02/2011 15:10:33

codegrabber
Membre
Date d'inscription: 31/12/2009
Messages: 96

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

je laisse la main à Djo sur ce point, je n'ai malheureusement pas trop le temps de tester, mais je reste à l'écoute :p

Hors ligne

 

#12 03/03/2011 18:43:54

yannux
Membre
Date d'inscription: 24/01/2011
Messages: 8

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

Cette solution ne marcher pas pour moi sad
Après de longues recherche et la lecture d'un rapport de bug : http://bugs.developers.facebook.net/sho … i?id=15214

Une solution c'est offerte en regardant les diverses pages qui fonctionnaient :


Code:

<script type="text/javascript">
FB.Canvas.setAutoResize();
FB.Array.forEach([200, 600, 1000, 2000, 5000, 10000], function(delay) {
setTimeout(function() { FB.Arbiter.inform("setSize", FB.Canvas._computeContentSize()); }, delay)
});
</script>

Si ça peut aider smile

Hors ligne

 

#13 10/06/2011 07:26:59

ftreca
Membre
Date d'inscription: 09/06/2011
Messages: 3

Re: Problème setAutoResize iFrame Facebook ne fonctionne pas sous firefox.

Merci pour l'astuce!
smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB
© Copyright 2008-2009 - LaFermeduWeb.net