2012-06-11 36 views
0

关于the following site的SoundCloud当前曲目信息

很简单,但没有少,我似乎在这个第一关在下降。

使用以下代码目前尝试和从当前有效的SoundCloud播放器获得轨道名称和艺术家(其中有4,与类SCiframe)

$(function() { 
    var $iframeElement = document.getElementsByClassName('SCiframe'); 
    var $widgets = SC.Widget(iframeElement); 
    widgets.bind(SC.Widget.Events.READY, function() { 
     widgets.bind(SC.Widget.Events.PLAY, function() { 
      // get information about currently playing sound 
      widgets.getCurrentSound(function (currentSound) { 
       $('#trackInfo').append('Current Track: ' + currentSound.get('') + ''); 
      }); 
     }); 
    }); 
}); 

为一体,控制台注册'iframeElement没有定义'作为初始错误。但总而言之,我似乎无法得到任何有用的数据来处理。

我在哪里错了?

最真诚的问候社区。

回答

0

你有变量名称不正确,他们有 “$”,在开始时,

$(function() { 
    var $iframeElement = document.getElementsByClassName('SCiframe'); 
    var $widgets = SC.Widget($iframeElement); 
    $widgets.bind(SC.Widget.Events.READY, function() { 
     $widgets.bind(SC.Widget.Events.PLAY, function() { 
       // get information about currently playing sound 
       $widgets.getCurrentSound(function (currentSound) { 
       $('#trackInfo').append('Current Track: ' + currentSound.get('') + ''); 
      }); 
     }); 
    }); 
}); 

编辑:

getElementsByClassName方法返回结果的数组。因此,如果只有一个与“SCiframe”类名的iframe,你应该通过$ iframeElement的第一个指数作为paramater在SC.Widget,试试这个,

$(function() { 
    var $iframeElement = document.getElementsByClassName('SCiframe'); 
    var $widgets = SC.Widget($iframeElement[0]); 
    $widgets.bind(SC.Widget.Events.READY, function() { 
     $widgets.bind(SC.Widget.Events.PLAY, function() { 
      // get information about currently playing sound 
      $widgets.getCurrentSound(function (currentSound) { 
       $('#trackInfo').append('Current Track: ' + currentSound.get('') + ''); 
      }); 
     }); 
    }); 
}); 
+0

确定的,是真实,这并解决简单的错误。但代码仍然没有返回。 我已在“alert('当前音轨:'+ currentSound.get('')+'')中添加;”看看我能否得到任何东西,但没有什么反应,所以显然它甚至没有得到这么多。 林现在也遇到了错误: a.contentDocument未定义 – Cosy

+0

我在几个警报添加... $(函数(){ \t \t \t \t \t变量$ iframeElement = document.getElementsByClassName( 'SCiframe') ; \t \t \t \t \t变量$控件= SC.Widget($ iframeElement); \t \t \t \t \t $ widgets.bind(SC.Widget.Events.READY,函数(){ \t \t \t \t \t \t \t alert('ready'); \t \t \t \t \t \t $ widgets.bind(SC.Widget.Events.PLAY,函数(){ \t \t \t \t \t \t \t警报( '绑定'); \t \t \t \t //获取有关当前信息播放声音 \t \t \t \t \t $ widgets.getCurrentSound(函数(currentSound){ \t \t'\t \t \t \t $('#trackInfo')。append('当前音轨:'+ currentSound。get('')+''); \t \t \t \t \t \t \t \t警报( '当前追踪:' + currentSound.get( '')+ ''); – Cosy

+0

它们都没有关闭,因此绑定函数甚至没有被调用。 – Cosy