2012-06-02 10 views
9

Używam FB.Canvas.setAutoGrow(7); do rozwijania mojej strony (strona = tabela wyników musi więc rosnąć).setAutoGrow: inne strony powinny ponownie się "skurczyć"

Jednak po powrocie na inne strony, płótno pozostaje rozwinięte, ale powinno się dostosować do nowej treści, oczywiście ... Zasadniczo musi się ponownie zmniejszyć.

Próbowałem setSize, ale to nie zadziałało.

Ktoś, kto może mi pomóc? Szukałem wiele godzin ... Wielkie dzięki!

+0

A na twoich innych stronach również używasz setAutoGrow? – CBroe

Odpowiedz

20

spróbować - kurczyć płótna po załadowaniu nowej strony, a następnie zadzwonić setAutoGrow()

FB.Canvas.setSize({height:600}); 
setTimeout("FB.Canvas.setAutoGrow()",500); 

tutaj jest pełny artykuł opisujący rozwiązanie http://www.twistermc.com/36764/shrink-facebook-tabs/

+0

Dzięki temu bardzo pomogłem :) – EinLama

+0

Cieszę się, że pomogłem –

+0

To rozwiązanie sprawdziło się również u mnie. – Ryan

2

AFAIK FB.Canvas.setAutoGrow() powiększa tylko element iframe. Nigdy go nie zmniejsza. Od jakiegoś czasu szukałem podobnej funkcji, ale nie ma dokumentacji o zmniejszaniu elementu iframe. Byłoby miło, gdyby ktoś wpadł na jakąś funkcję, żeby zrobić coś w stylu autoShrink().

+0

lub po prostu trzeba zrobić FB.Canvas.AutoSize(); Teraz byłoby to pomocne. –

+0

Spójrz na moją odpowiedź powyżej. Powoduje, że płótno jest mniejsze, a następnie setAutoGrow() naprawia je tak, jak powinno być. –

1

miałem problem gdzie SetAutoGrow był mis obliczanie tylko nieznacznie z powodu dolnego marginesu w komentarzach FB u dołu strony, co powoduje przewijanie paska.

Znalazłem się pisząc swój własny budynek na powyższym;

var mainContainer = $("#training"); 

var resizeTimer = setInterval(function() { 

    // fix for FF to make setAutoGrow work. 
    mainContainer.height('auto'); 
    var newHeight = mainContainer.height(); 
    mainContainer.height(newHeight); 

    // fixes lack of auto shrink 
    FB.Canvas.setSize({ height: newHeight }); 
}, 500); 
Powiązane problemy