1

我正在尝试使用 Javascript 使用站点的 API 在 Soundcloud 上搜索曲目。我test.html使用以下代码创建了一个页面(删除了客户端 ID):

<html>
<head>
<script src="http://connect.soundcloud.com/sdk.js">
function findMusicByTag(tag)
{
SC.initialize({
    client_id: 'MY_CLIENT_ID'
});
SC.get('/tracks',{tags:\"tag\"},
    function(tracks)
    {
        console.log(tracks);
    });
}
</script>
</head>
<body onload="findMusicByTag('hitech')">
</body>
</html> 

当我在 Chrome 中加载页面,然后转到控制台时,我看到了这个错误:

Uncaught ReferenceError: findMusicByTag is not defined         test.html:17

我定义的方式有什么问题findMusicByTag()

4

2 回答 2

3

您应该将<script>标签分成两部分:

<script type="text/javascript" src="http://connect.soundcloud.com/sdk.js"></script>
<script type="text/javascript">
function findMusicByTag(tag)
{
    SC.initialize({
        client_id: 'MY_CLIENT_ID'
    });
    SC.get('/tracks',{tags:tag},
        function(tracks)
        {
            console.log(tracks);
    });
}
</script>

正如MDN所述:

源代码

该属性指定外部脚本的 URI;这可以用作直接在文档中嵌入脚本的替代方法。script具有指定属性的元素src不应在其标签中嵌入脚本

编辑:删除了反斜杠和双引号{tags:tag}

于 2013-03-12T04:28:02.930 回答
1

除了分隔脚本标签外,还需要去掉 /" 周围的标签

<html>
<head>
<script src="http://connect.soundcloud.com/sdk.js">
</script>
<script type="text/javascript">
function findMusicByTag(tag)
{
SC.initialize({
    client_id: 'your id'
});
SC.get('/tracks',{tags: tag},
    function(tracks)
    {
        console.log(tracks);
    });
}
</script>
</head>
<body onload="findMusicByTag('hitech')">
</body>
</html> 
于 2013-03-12T04:39:34.440 回答