0

关于以下网站

很简单,但我似乎在这方面遇到了第一个障碍。

当前使用以下代码尝试从当前活动的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 is not defined”注册为初始错误。但总而言之,我似乎无法从中获得任何有用的数据来处理。

我在哪里错了?

向社区致以最诚挚的问候。

4

1 回答 1

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,您应该在 SC.Widget 中将 $iframeElement 的第一个索引作为参数传递,试试这个,

$(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('') + '');
            });
        });
    });
});
于 2012-06-11T15:15:57.350 回答