我正在尝试使用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()
的方式有什么问题?
答案 0 :(得分: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所述:
<强> SRC 强>
此属性指定外部脚本的URI;这可以用作直接在脚本中嵌入脚本的替代方法 文献。指定了
script
属性的src
元素不应该 在其标签中嵌入了一个脚本。
修改:删除了反斜杠并在{tags:tag}
附近加了双引号。
答案 1 :(得分:1)
除了分离脚本标记外,还需要删除/“around标记
<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>