2012-12-23 10 views
9

Próbuję załadować api widgetu twitter na mojej stronie ładowanej ajax.Widżet Twitter tylko ładować po raz pierwszy na stronie internetowej ajax ajax?

Próbowałem załadować skrypt na kilka różnych sposobów i otrzymuję alert do uruchomienia za każdym razem, ale nie sam skrypt.

Kiedy ładuję stronę po raz pierwszy, skrypt działa, ale jeśli wrócę do menu i powrócę na tę stronę, to nie zostanie ona załadowana?

To jest załadowana strona ajax.

<div id="twitterwid"> 

<a class="twitter-timeline" width="320" height="500" href="https://twitter.com/my account" data-widget-id="my widget id number">Loading tweets by @me</a> 
<script> 

alert("alert is working"); 

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); 


</script> 

<div> 

Wszelkie uwagi doceniane, dzięki.

Odpowiedz

17

Wszystko co musisz zrobić, to: wywołać ponowne renderowanie tagów widget na stronie pod numerem:

twttr.widgets.load() 

Similar question on Twitter Dev Channel

Uwaga: inline skrypt nie jest wykonywany na AJAX obciążenia. Zobacz: to SO Q&A, aby rozwiązać ten problem.

+0

Dzięki Ujjwal, może pomóc z innej rzeczy? Widżet przewija się bardzo źle w aplikacji internetowej i próbowałem ustawić przewijanie przez Internet - przewijanie w otaczającym elem div i elemencie iframe, ale to nie pomaga. Czy wiesz, jak poprawić przewijanie? –

+0

Dziękuję bardzo Ujjwal! –

+2

dlaczego to rozumiem? 'Uncaught ReferenceError: twttr nie jest zdefiniowany' – prime

0

Dodaj pierwszy:

<script>window.twttr = (function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0], 
    t = window.twttr || {}; 
    if (d.getElementById(id)) return t; 
    js = d.createElement(s); 
    js.id = id; 
    js.src = "https://platform.twitter.com/widgets.js"; 
    fjs.parentNode.insertBefore(js, fjs); 

    t._e = []; 
    t.ready = function(f) { 
    t._e.push(f); 
    }; 

    return t; 
}(document, "script", "twitter-wjs"));</script> 

Więc można użyć:

twttr.widgets.load() 
Powiązane problemy