Soundcloud JavaScript API を使用して、トラックの検索結果を使用してプレーヤー ウィジェットのページを動的に生成したいと考えています。私のコードは次のとおりです。
<html>
<head>
<script src="http://connect.soundcloud.com/sdk.js"></script>
<script>
function makeDivsFromTracks(tracks,SC)
{
var track;
var permUrl;
var newDiv;
for(var ctr=0;ctr<tracks.length;ctr++)
{
newDiv=document.createElement("div");
newDiv.id="track"+ctr;
track=tracks[ctr];
SC.oEmbed(track.permalink_url,{color:"ff0066"},newDiv);
document.body.appendChild(newDiv);
}
}
</script>
</head>
<body>
<script>
SC.initialize({
client_id: 'MY_CLIENT_ID'
});
SC.get('/tracks',{duration:{to:900000},tags:'hitech',downloadable:true},
function(tracks,SC)
{
makeDivsFromTracks(tracks,SC);
});
</script>
</body>
</html>
これをロードすると、SC.oEmbed()
呼び出しでエラーがスローされます。
Uncaught TypeError: Cannot call method 'oEmbed' of null
s が生成されていないか、検索結果が返されていないことを示しているように見えますdiv
が、呼び出しを削除して次のSC.oEmbed()
ように置き換えると:
newDiv.innerHTML=track.permalink_url;
次に、検索結果の URL の優れたリストを取得します。
div
そして、静的および静的URLを使用してウィジェットを作成すると、たとえば
<body>
<div id="putTheWidgetHere"></div>
<script>
SC.initialize({
client_id: 'MY_CLIENT_ID'
});
SC.oEmbed("http://soundcloud.com/exampleTrack", {color: "ff0066"}, document.getElementById("putTheWidgetHere"));
</script>
</body>
それもうまくいきます。oEmbed()
では、これらの動的に作成された要素を使用した呼び出しの問題は何ですか?