Soundcloud嵌入式javascript错误:无法在'CanvasRenderingContext2D'上执行'createPattern':画布宽度为0

时间:2016-09-10 17:59:20

标签: javascript soundcloud

我从我的网站pullup.club上的(https://w.soundcloud.com/player/widget-6c3640e3.js & https://w.soundcloud.com/player/multi-sounds-0e392418.js)的soundcloud嵌入式配置文件中获取了一个未被捕获的InvalidStateError,它是在github.io上托管的,并且是open source ...

我在模态弹出窗口中有两个嵌入式声音云配置文件

  <iframe width="35%" height="450" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/users/5142431&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false"></iframe>

当我的网站加载时,我得到错误和一点滞后,不知道如何摆脱这个错误,并想知道是否因为我有弹出窗口中的嵌入式播放器,或者我需要以某种方式指定画布大小?

我完全无能为力,所以非常感谢所有的帮助!

2 个答案:

答案 0 :(得分:0)

原因是将它加载到一个看不见的弹出窗口中。 因此,当时在iframe中调用soundcloud的js代码时,画布没有空间扩散,因此它的宽度为0.

解决方案1:在显示弹出窗口后,使用jquery动态创建iframe。 (假设您的网站使用jquery,您在问题中提到的那个)

解决方案2:让包含soundcloud帧的div渲染到屏幕外,然后将其移动到可见区域

答案 1 :(得分:0)

问题可能是包含<div>的{​​{1}}是灵活的width而不是min-width

此错误的一个修复方法是将width的{​​{1}}更改为<iframe>而不是%值,因为px的宽度由它的内容。

示例:

<div>

另一个解决方法是将包含%<iframe width="350px"...> 的{​​{1}} width设置为<div>值。