2016-07-20 58 views
1

我一直在研究一个需要嵌入Soundcloud歌曲的项目。如果我尝试在Chrome中打开该页面,则一切正常,但在Firefox中,它只显示中间带有Soundcloud徽标的灰色框。Soundcloud在Firefox中嵌入问题

我试图调试它,这里是我在Firebug中看到的。当我打开网页,它说

TypeError: this.getFlashPlugin(...).match(...) is null

Error: Permission denied to access property "href"

由于2-天,我一直在寻找它,现在,我几乎得出一个结论,这不能不管怎么样,突然间,一个jsfiddle网址出现在搜索结果中,我看到soundcloud在Firefox和Chrome中嵌入工作正常。

现在,这里原来的jsfiddle网址:http://fiddle.jshell.net/Peeters_William/kpkdnrts/

我做了什么,被复制完全相同的代码,包括HTML和Javascript部分到一个新的jsfiddle文件,该文件可以在这里找到:https://jsfiddle.net/etLwq8kv/

我毫不知情:为什么第一个小提琴没有任何问题,第二个人拒绝嵌入歌曲?我相信,我的第一个代码完全相同的副本,它仍然拒绝显示..

我甚至改变了我的第一小提琴看到的所有设置,如

  • CSS面板 - >正规化的CSS
  • HTML面板 - >文档类型:HTML5,身体标记:
  • 的Javascript面板 - >语言:JavaScript中,框架:无Libary(纯JS),负载类型:的onLoad

尽管如此,即使我相信这两个小提琴是精确的副本,为什么这第二个拒绝正常工作?

在此先感谢,祝大家有个美好的一天!

回答

2

在检查了网络中的一些线索之后,我发现脚本根本没有被加载。我开始仔细检查所有内容,并且我注意到工作示例中的网址与您的网址不同,不仅仅是网址(https://jsfiddle.nethttp://fiddle.jshell.net),还有协议。

在工作示例中,协议是HTTP,Soundcloud的API也是如此。但是,您的示例处于安全连接并且API地址不是。这解释了“权限被拒绝访问属性href消息。”

幸运的是,Soundcloud提供了一个安全版本的API。我通过将协议更改为HTTPS修复了您的示例,并开始工作。

更改HTTP协议

http://connect.soundcloud.com/sdk.js

到HTTPS

https://connect.soundcloud.com/sdk.js

+1

我也注意到这样的事情:火狐倾向于阻止通过HTTPS加载页面发送HTTP请求。另一个你应该看看的问题是HTTP Access控制源,当从其他页面加载东西时,经常会导致奇怪的问题。 – TuringTux

+0

非常感谢!将其更改为https,现在一切都很顺利:)答案已接受! – z3r0