0

由于这个问题,我被迫通过 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} 标签,插入代码的音频播放器是白色的,所以我想改变它。我添加了两行(在代码中注释),它有点工作:播放器变成黑色,但所有控件都是不可见的。而不是预期的

普通黑人球员

我明白了

JavaScript 加载黑色播放器

您可以在此处查看实时示例:http: //tmbeta.tumblr.com/(顺便说一句,测试手机,因此您需要调整窗口大小以使其小于 480 像素宽)。这是用于音频帖子的 tumblr api,以防万一。

4

2 回答 2

1

Tumblr 音频播放器的配色方案不受请求 URL 中传递的颜色代码的约束,正如您所假设的 - 它是swf(Flash) 文件本身的一部分。要获得黑色播放器,您需要请求audio_player_black.swf而不是默认的 (white) 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定义:)。

于 2012-05-04T20:42:58.973 回答
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
});
于 2015-01-11T20:43:11.560 回答