【发布时间】:2019-07-29 07:42:01
【问题描述】:
我将标准 iframe 嵌入到显示 SoundCloud 音乐播放器的非 SSL 网页中。播放器加载正常,但我在 Safari 开发者工具中发现错误如下:
IndexSizeError:DOM 异常 1:索引或大小为负数,或大于允许值。
Chrome 浏览器中出现其他相关错误:
未捕获的 IndexSizeError:无法在“CanvasRenderingContext2D”上执行“getImageData”:源宽度为 0
错误参考https://w.soundcloud.com/player/assets/layouts/visual-single-sound-67f5bd61.js - 第 963 行。我也尝试过 Firefox,但在控制台中出现相同的错误。这是我的 iframe 代码示例:
<iframe scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F12345678&auto_play=false&show_artwork=true&visual=true"></iframe>
有什么办法可以摆脱这些错误吗?这可能与从我的 HTTP 父页面下的 HTTPS 引用加载的 javascript 有关吗?
【问题讨论】:
-
这到底是 HTTPS 的问题?
-
不确定,但我的页面运行 HTTP,并且此错误试图通过 HTTPS 协议从 iframe 中加载。可能无关,但值得注意。
-
我已修改标题以更具体地针对问题,而不是暗示 HTTPS 问题。
-
是的,因此这篇文章。引自 SoundCloud 的开发者网站:“我们的团队正在回答有关 Stack Overflow 的技术问题”。
-
你是对的。我一直在做更彻底的测试,并认为我可能已经发现了问题。我在网站上使用 Bootstrap 3,并且必须根据设备浏览器显示/隐藏一些内容。 SoundCloud iframe 在隐藏的代码部分中被复制(用于显示比全屏更少的音频播放器)。当我删除隐藏/重复的代码部分时,错误就消失了。我知道有几种方法可以在 Web 编程中得到相同的结果,但我只是把它放在一起进行测试,并不认为这可能是原因。感谢您的想法!
标签: dom iframe ssl https soundcloud