javascript - 附加元素上的getelementbyid

标签 javascript audio element

var track_url = data.result;

SC.get('/resolve', {
    url: track_url
}, function(track) {
    console.log(track.id);
    $('#player').append('<iframe id="soundcloud_widget"  src="http://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/' + track.id + '&show_artwork=true&liking=true&sharing=true&auto_play=true"  width="1280"  height="720"   frameborder="no"></iframe>');
    var q = $('#player').get(0);
    console.log(q);
    var widget = SC.Widget(document.getElementById('soundcloud_widget'));
    widget.bind(SC.Widget.Events.READY, function() {
        console.log("test1");
    });
    widget.bind(SC.Widget.Events.FINISH, function() {
        console.log("test2");
    });
});

我正在使用此代码在页面上动态嵌入soundcloud播放器。每次请求新歌曲时,它都会删除之前的play div元素,并将其重新添加到HTML中,以便您播放新歌曲。我的YouTube API可以使用此功能,但无法将它用于soundcloud。事件不会触发。我在这条线上出现错误:
var widget = SC.Widget(document.getElementById('soundcloud_widget'));

错误是:
Uncaught TypeError: undefined is not a function ?n=2071:211(anonymous function) ?n=2071:211(anonymous function) sdk.js:1request.onreadystatechange sdk.js:1

现在,我相信会发生此错误,因为当我添加新的iframe时,不会更新DOM数据,因此不会通过“getelementbyid”找到“soundcloud_widget”元素。不幸的是,据我所知。

最佳答案

 var track_url = data.result;

SC.get('/resolve', {
    url: track_url
}, function(track) {
    console.log(track.id);
    $('#player').append('<iframe id="soundcloud_widget"  src="http://w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/' + track.id + '&show_artwork=true&liking=true&sharing=true&auto_play=true"  width="1280"  height="720"   frameborder="no"></iframe>');
    var q = $('#player').get(0);
    console.log(q);

    var element = $('#soundcloud_widget');
    var widget = SC.Widget(element);
    widget.bind(SC.Widget.Events.READY, function() {
        console.log("test1");
    });
    widget.bind(SC.Widget.Events.FINISH, function() {
        console.log("test2");
    });
});

尝试吐元素的获取

var element = $('#soundcloud_widget');



并使用元素
var widget = SC.Widget(element);

这应该给您更好的错误。

关于javascript - 附加元素上的getelementbyid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26461361/

相关文章:

javascript - 错误 解析错误 : Unexpected token, 预期 ","

javascript - 无法从服务器获取对象数组

c# - 使用带有 C# 的 MediaTranscoder 将 PCM 音频转码为 MP3

actionscript-3 - RIFF header ,但不是 ActionScript 中的WAV错误

audio - 录制立体声混音和寄生虫

jquery拖动元素

javascript - 我如何有条件地在 Angular js中应用标题

javascript - 如何在 Rails 中包含并组合所有 Controller 特定的 JavaScript?

javascript - 在网站的一次导航中仅显示一次弹出窗口

javascript - 如何通过Javascript动态删除表单元素?