twitter小部件只在webapp ajax页面中第一次加载?

时间:2012-12-23 10:20:32

标签: twitter widget

我试图在我的ajax加载页面中加载twitter小部件api。

我尝试以几种不同的方式加载脚本,我每次都会收到警报但不是脚本本身。

所以我第一次加载页面时,脚本正在运行,但是如果我回到菜单并回到这个页面,那么它不会加载它吗?

这是加载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>

任何投入都表示赞赏,谢谢。

2 个答案:

答案 0 :(得分:16)

您所要做的就是:通过调用以下方式调用页面上的小部件标记的重新呈现:

twttr.widgets.load()

Similar question on Twitter Dev Channel

注意:在AJAX Load上不执行内联脚本。 请参阅:此SO Q&A以获得解决方案。

答案 1 :(得分: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()