0

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 が正しい記事を選択していることを示唆しています。

問題のコードは

$(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 のあいまいなバグですか?

4

0 に答える 0