SoundCloud - 从网址获取歌曲名称

时间:2014-08-26 20:50:12

标签: javascript iframe soundcloud

JavaScript中有没有办法从URL获取歌曲名称? 我使用<iframe>标签,但我无法获取soundcloud的文档并找到文档的标题。

HTML:

<span id="iframe_container"></span>
<span id="name"></span>

JS:

var video_url_new = '<iframe width="100%" height="450" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/81619639&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true"></iframe>';
var link_new;


//play song
play();

function play(){
    link_new = video_url_new.replace("></iframe>", " id='i_song_name_i'></iframe>").replace("auto_play=false", "auto_play=true").replace(' width="100%" height="450" scrolling="no" frameborder="no"', '');
    document.getElementById("iframe_container").innerHTML = link_new;

    // And here's the problem:
    document.getElementById("name").innerText = document.getElementById("i_song_name_i").contentWindow.document.getElementsByTagName("title")[0].innerText;
}

...我的浏览器返回此错误:

错误:访问属性“文档”的权限被拒绝

我知道soundcloud不允许在框架中获取文档,所以我想问;是没有iframe保护的歌曲的网站(或类似的东西)?

1 个答案:

答案 0 :(得分:0)

由于same-origin policy,您无法从iframe获取信息,因为soundcloud api console不允许您访问位于其他域的iframe内容。

另一方面,有here我也曾用它来获得一首歌的名字。

这意味着有一个API调用来获取有关具有特定ID的某首歌曲的信息,但您必须使用完全不同的方法(使用soundcloud api)来获取它,而不是试图将其从iframe(可能只能在黑客浏览器中使用)

您可以看到针对数据{{3}}的示例REST请求,而在另一个标签上,您可以看到包含该歌曲的所有元数据的响应。

希望有所帮助。