如何重新加载嵌入式推文?

时间:2015-07-27 20:24:54

标签: javascript twitter

我在SO上找到了其他答案以及建议的运行解决方案:

twttr.widgets.load();

对我不起作用。

http://jsfiddle.net/xqdd25xf/1/

有问题的推文是使用标准嵌入代码嵌入的,例如:

<blockquote class="twitter-tweet" lang="en"><p lang="en" dir="ltr">On this day in 1996, the final episode of The Fresh Prince aired on TV. <a href="http://t.co/nYN5PJQUbJ">pic.twitter.com/nYN5PJQUbJ</a></p>&mdash; Will Smith (@WilII_Smith) <a href="https://twitter.com/WilII_Smith/status/601025109881663488">May 20, 2015</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

我想重新加载它们的原因是因为在IOS(iPhone)上,当你从纵向模式转到横向模式时,推文仍然是纵向大小。无论如何,我认为刷新它会给它适当的尺寸在纵向上改变横向变化,以便它填满屏幕的宽度。

1 个答案:

答案 0 :(得分:0)

您可以在页面上添加一个获取推文ID的脚本,并在窗口更改时重新创建它:

$(window).resize(function() {
    $.getScript('//platform.twitter.com/widgets.js', function(){ 
        var k = 0;
        var tweet = document.getElementById('twitter-widget-'+k);
        var tweetParent, tweetID, tweetNext;
        while(tweet) {
            tweetParent = tweet.parentNode;
            tweetID = tweet.dataset.tweetId;
            $(tweet).remove();
            tweetNext = $(tweet).next();
            if (tweetNext.prop("tagName") == 'SCRIPT') tweetNext.remove();
            twttr.widgets.createTweet(
              tweetID,
              tweetParent
            );
            k++;
            tweet = document.getElementById('twitter-widget-'+k);
        }
    }); 
})

JsFiddle

相关问题