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&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&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保护的歌曲的网站(或类似的东西)?
答案 0 :(得分:0)
由于same-origin policy,您无法从iframe
获取信息,因为soundcloud api console不允许您访问位于其他域的iframe
内容。
另一方面,有here我也曾用它来获得一首歌的名字。
这意味着有一个API调用来获取有关具有特定ID的某首歌曲的信息,但您必须使用完全不同的方法(使用soundcloud api)来获取它,而不是试图将其从iframe(可能只能在黑客浏览器中使用)
您可以看到针对数据{{3}}的示例REST
请求,而在另一个标签上,您可以看到包含该歌曲的所有元数据的响应。
希望有所帮助。