2012-12-23 14 views
9

Tôi đang cố gắng tải api widget twitter trong trang được tải ajax của tôi.tiện ích twitter chỉ tải lần đầu tiên trong trang web ajax webapp?

Tôi đã thử tải tập lệnh theo một vài cách khác nhau và Im nhận cảnh báo để chạy mỗi lần chứ không phải bản thân tập lệnh.

Vì vậy, lần đầu tiên tôi tải trang, sau đó kịch bản đang hoạt động, nhưng nếu tôi quay trở lại menu và quay lại trang này, thì nó không tải nó?

Đây là trang được tải 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> 

Bất kỳ đầu vào nào được đánh giá cao, cảm ơn.

Trả lời

17

Tất cả bạn phải làm là: gọi một tái render của các thẻ phụ tùng trên trang bằng cách gọi:

twttr.widgets.load() 

Similar question on Twitter Dev Channel

Lưu ý: kịch bản inline không được thực hiện khi AJAX Load. Xem: SO Q&A cho giải pháp đó.

+0

Cảm ơn Ujjwal, có thể bạn có thể giúp điều khác? Các widget cuộn thực sự xấu trong ứng dụng web và tôi đã cố gắng để thiết lập webkit-overflow-scrolling trên div xung quanh và trên iframe, nhưng nó không giúp đỡ. Bạn có biết cách cải thiện cuộn không? –

+0

Cảm ơn bạn rất nhiều Ujjwal! –

+2

tại sao tôi nhận được điều này? 'Tham chiếu UncaughtError: twttr không được xác định' – prime

0

Thêm đầu tiên:

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

Vì vậy, bạn có thể sử dụng:

twttr.widgets.load()