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 на мою страницу. Каждый раз, когда запрашивается новая песня, он удаляет предыдущий элемент div и воспроизводит его в HTML, чтобы вы могли воспроизвести новую песню. У меня это работает для API youtube, но я не могу заставить его работать для soundcloud. События не срабатывают. Я получаю ошибку на этой линии:getelementbyid on присоединенные элементы
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 данных обновляется, поэтому " элемент soundcloud_widget 'не найден' getelementbyid '. К сожалению, это насколько я могу справиться самостоятельно.
Что вы пытаетесь вставить в htmp? – cpoDesign