Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;无法调用方法';oEmbed';“无效”的定义;在动态生成的Div中嵌入Soundcloud播放器时_Javascript_Soundcloud - Fatal编程技术网

Javascript &引用;无法调用方法';oEmbed';“无效”的定义;在动态生成的Div中嵌入Soundcloud播放器时

Javascript &引用;无法调用方法';oEmbed';“无效”的定义;在动态生成的Div中嵌入Soundcloud播放器时,javascript,soundcloud,Javascript,Soundcloud,使用SoundCloudJavaScriptAPI,我想使用跟踪搜索结果动态生成一页播放器小部件。我的代码如下: <html> <head> <script src="http://connect.soundcloud.com/sdk.js"></script> <script> function makeDivsFromTracks(tracks,SC) { var track; var permUrl; var newDiv

使用SoundCloudJavaScriptAPI,我想使用跟踪搜索结果动态生成一页播放器小部件。我的代码如下:

<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> 
这似乎表明没有生成
div
s或者没有返回搜索结果,但是如果我删除
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>

SC.initialize({
客户id:“我的客户id”
});
SC.oEmbed(”http://soundcloud.com/exampleTrack“,{color:“ff0066”},document.getElementById(“putcheidgethere”);

那也行。那么,使用这些动态创建的元素调用我的
oEmbed()
有什么问题呢?

解决了这个问题。我从回调函数中取出了
SC
参数,并
makeDivsFromTracks()
,现在所有的播放器都出现了。不确定这到底是为什么——可能与SDK脚本引用中定义的SC对象有关,因此它是全局可用的,不需要传递到函数中

无论如何,工作代码是:

<html>
<head>
<script src="http://connect.soundcloud.com/sdk.js"></script>

<script>
function makeDivsFromTracks(tracks)
{
 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];
  //newDiv.innerHTML=track.permalink_url;
  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:{from:180000,to:900000},tags:'hitech',downloadable:true},function

(tracks){makeDivsFromTracks(tracks);});
</script>

</body>
</html>

函数makeDivsFromTracks(tracks)
{
var轨迹;
var-permUrl;
var newDiv;

对于(var ctr=0;ctrhow使用appendTo将SC.oEmbed播放器附加到ul>li?
<html>
<head>
<script src="http://connect.soundcloud.com/sdk.js"></script>

<script>
function makeDivsFromTracks(tracks)
{
 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];
  //newDiv.innerHTML=track.permalink_url;
  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:{from:180000,to:900000},tags:'hitech',downloadable:true},function

(tracks){makeDivsFromTracks(tracks);});
</script>

</body>
</html>