【问题标题】:How can I fit height to content when using the SoundCloud oembed API call?使用 SoundCloud oembed API 调用时如何使高度适合内容?
【发布时间】:2012-11-12 09:47:20
【问题描述】:

我正在使用 API 中的 /oembed call 嵌入 SoundCloud 播放器。

首先,关于响应中 iframe 的高度,文档似乎不正确/过时。文档中提到了maxheight 参数:

以 px 为单位的最大高度。曲目的默认值为 81,所有曲目的默认值为 305 其他。

但是,实际接收到的高度值似乎是轨道的 166 像素和集合的 450 像素。

现在我的实际问题:

当为一个集/播放列表调用 /oembed 时,曲目列表下方会有空白区域。有没有办法消除这个空间?换句话说,我可以根据播放列表中的项目数以某种方式设置接收到的 iframe 的高度吗?

我自己检查这个并动态设置高度不起作用,因为我不允许检查 iframe 的内容,因为网络浏览器中的同源策略。

【问题讨论】:

    标签: iframe soundcloud oembed


    【解决方案1】:

    感谢您发现不正确的措辞。我们会尽快解决这个问题。

    关于您的问题,是的,您可以在查询中发送maxheight 参数并将其设置为对您有意义的任何内容。

    “当前播放的声音”的高度,加上当前播放列表的标题是 196px,所以要使列出所有声音的可滚动区域的高度为 100px,你可以这样做:

    var div = document.createElement('div');
    
    $.get(
      'http://soundcloud.com/oembed?' + 
      'url=http://soundcloud.com/eric' + 
      '&format=json&maxheight=296'
    )
      .done(function (response) {
        div.innerHTML = response.html;
        document.body.appendChild(div);
      });
    

    这是一个工作示例:http://jsbin.com/aduxex/1/edit

    【讨论】:

    • 感谢您的回复。好吧,在 HTML5 小部件中也可以使用 maxheight 参数,但是由于我事先不知道我想要什么高度,所以问题是一样的。 (而且我真的不想使用 Flash 小部件。)如果只有 oEmbed 响应包含带有返回小部件中列表项数量的键/值,我至少可以获取它,计算高度,然后调用再说一遍。 /oembed 调用的好处是它接受任何类型的 SoundCloud URL;我认为所有 API 调用都应该允许这样做。我可以在哪里留下这样的功能请求?
    • 好的,我知道您的目标是调整小部件,使其具有与曲目数量完全匹配的特定大小?
    • 是的,这正是我想要的 :) 在事先不知道轨道数量的情况下,我想绘制一个始终适合所有轨道的高度的小部件,但不会高于此。
    • 您可以查询给定播放列表的 API 并查看该播放列表中有多少曲目。在默认缩放级别和字体大小下,一项为 59 像素。
    • 是的,我想这会起作用,尽管增加了 oembed 调用的近乎单行精度的复杂性。好的,非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2011-06-11
    相关资源
    最近更新 更多