2012-12-23 3 views
9

Im пытается загрузить виджет twitter api в моей загруженной странице ajax.twitter widget загружает только первый раз в webapp ajax page?

Я попытался загрузить сценарий несколькими способами, и я получаю предупреждение для запуска каждый раз, но не сам скрипт.

Итак, в первый раз, когда я загружаю страницу, скрипт работает, но если я вернусь в меню и вернусь на эту страницу, то он не загрузит его?

Это страница с загруженной 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> 

Любой ввод оценивается, спасибо.

ответ

17

Все, что вам нужно сделать, это: вызвать повторную визуализацию виджета тегов на странице по телефону:

twttr.widgets.load() 

Similar question on Twitter Dev Channel

Примечания: встроенный скрипт не выполняется на AJAX нагрузки. См. Это SO Q&A для решения этого.

+0

Благодаря Ujjwal, может быть, вы можете помочь с другой вещи? Виджет прокручивается очень плохо в веб-приложении, и я попытался установить прокрутку webkit-overflow в окружающем div и в iframe, но он не помогает. Вы знаете, как улучшить прокрутку? –

+0

Большое спасибо Уджваль! –

+2

Почему я это понял? 'Uncaught ReferenceError: twttr не определен' – prime

0

Добавить первый:

<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> 

Таким образом, вы можете использовать:

twttr.widgets.load() 
Смежные вопросы