重新加载页面时,Soundcloud播放器位置错误

时间:2013-06-10 16:30:12

标签: javascript jquery webkit soundcloud

我有一个页面,通过jquery加载了多个Soundcloud播放器。

首次加载页面时,玩家的顺序正确。如果选项卡已关闭并重新打开(使用Chrome的ctrl + shift + t),或者如果您转到其他页面并按后退按钮,则会在不正确的位置重新加载播放器。

我在https://github.com/iainx/sc-bug-test放了一个简单的示范项目。

对于Chrome和Safari,您可以像这样重现它

  1. 加载页面和3名玩家应该按照Double Dagger,Jonathan Rado和CFCF的顺序
  2. 转到另一页
  3. 按后退按钮返回测试页面。有时玩家不再按正确顺序排列,但标题仍然是正确的顺序,这表明jquery正在选择正确的文章。
  4. 有问题的代码是

    $(function() {
        tracks = ["http://soundcloud.com/thrilljockey/double-dagger-heretics-hymn", "http://soundcloud.com/woodsist/jonathan-rado-faces", "http://soundcloud.com/cfcf/camera"];
    
        function updateTrack(trackUrl, playerNumber) {
    
            $.getJSON('http://soundcloud.com/oembed?callback=?',
                      {format: 'js', url: trackUrl, iframe:'true'},
                      function(data) {
                          var articleDiv = $('#player' + playerNumber);
                          var playerDiv = articleDiv.find('.player');
    
                          var position = playerDiv.position();
                          playerDiv.html(data['html']);
    
                          var titleDiv = articleDiv.find("header"); 
                          titleDiv.text(data['title']);
                      });
        }
    
        for (var i = 1; i < 4; i++) {
            updateTrack(tracks[i - 1], i);
        }
    });
    

    它在Firefox(Linux和OSX)上运行良好,但在Chrome(Linux和OSX),Safari(OSX)和Epiphany(Linux上的另一个WebKit浏览器)上都有效。

    我的代码是否有任何愚蠢的行为,或者是Soundcloud甚至是Webkit中的一些晦涩的错误?

0 个答案:

没有答案