【问题标题】:SoundCloud - get song name from urlSoundCloud - 从 url 获取歌曲名称
【发布时间】:2014-08-26 20:50:12
【问题描述】:

在 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 保护的歌曲信息?

【问题讨论】:

  • 示例 html iframe 嵌入是什么样的?请用一些标记更新您的问题。
  • @Grevling 感谢您的编辑! (我英语说得不太好:})

标签: javascript iframe soundcloud


【解决方案1】:

您无法从iframe 中获取信息,因为same-origin policy 不允许您访问位于另一个域中的iframe 的内容。

另一方面,soundcloud api console 我也用它来获取歌曲的名称。

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

您可以看到一个示例 REST 请求数据 here,在另一个选项卡上您可以看到包含歌曲所有元数据的响应。

希望对您有所帮助。

【讨论】:

  • 控制台和apigee的链接不再有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多