2012-05-04 32 views
0

由於this issue,我不得不通過JavaScript加載我的主題中的tumblr音頻播放器。裝載情況如下:用Javascript更改Tumblr音頻播放器顏色

$(window).load(function() { 
    setTimeout(function() {       
     $('.audio-player').each(function(){ 
      var audioID = $(this).parents(".audio").attr("id"); 
      var $audioPost = $(this); 
      var color = "000000"; //new color 
      $.ajax({ 
       url: '/api/read/json?id=' + audioID, 
       dataType: 'jsonp', 
       timeout: 50000, 
       success: function(data){ 
        if ($audioPost.html().indexOf("is required to") != -1) { 
         $audioPost.find('#audio_player_'+audioID).replaceWith('<div style=\"background-color:white;">' + data.posts[0]['audio-player'].replace("color=FFFFFF", "color=" + color) +'</div>'); //replace color here 
        } 
       } 
      }); 
     }); 
    }, 2000); 
}); 

儘管使用{} AudioPlayerBlack標籤,代碼插入音頻播放器是白色的,所以我想改變這種狀況。我添加了兩行(在代碼中註釋),它有點工作:玩家變黑,但所有控件都不可見。而不是預期的

regular black player

的我得到這個

JavaScript loaded black player

您可以檢查這裏的活生生的例子:http://tmbeta.tumblr.com/(順便說一句,測試手機,所以你需要調整你的窗口,使之寬度小於480px)。這是tumblr api for audio posts,以防萬一。

+0

當你刪除'背景顏色會發生什麼:white'風格從你的'div'? – kopischke

+0

@kopischke嘿!這些日子你是我的英雄:)它什麼也沒做,bg是玩家周圍的區域。我刪除了代碼並將其更改爲黑色,以便您可以看到我指的是什麼。 http://i.imgur.com/SDLWq.png – Barbara

+0

哦,對,我明白 - 它的意思是黑色的...哼。你能鏈接到現場代碼(與最後一個問題相同)嗎? – kopischke

回答

1

Tumblr音頻播放器的配色方案不受您在請求URL中傳遞的顏色代碼的支配,因爲您認爲它是swf(Flash)文件本身的一部分。要獲得黑人玩家,您需要請求audio_player_black.swf而不是默認(白色)audio_player.swf。在你的代碼中,將最內層的代碼行改爲

$audioPost.find('#audio_player_'+audioID).replaceWith('<div style=\"background-color:white;">' + data.posts[0]['audio-player'].replace("audio_player.swf", "audio_player_black.swf") +'</div>'); 

你應該很好走。你當然也可以擺脫color的定義:)。

0

我不知道這是否合適,但如果有人試圖簡單地改變標準tumblr音頻播放器的背景色,我發現這個簡單的代碼可以工作。

(還沒有檢查它無處不在,加上顏色而不是替換可能是壞的代碼,但它似乎功能罰款?)

$('iframe.tumblr_audio_player').each(function(){ 
    var audio = $(this).attr('src') 
    $(this).attr('src', audio + '&color=e84d37'); // replace w/ hex of whatever color 
});