我尝试使用slidejs在javascript滑块中使用多个soundcloud html5小部件(iframe)。
除了IE之外,所有浏览器都可以毫无问题地滑动小部件。 在IE9中,只有第一张幻灯片中的小部件显示出来,其他小部件以某种方式隐藏。 您可以找到example of the slider。
我发现在重新加载页面后,您可以点击" next"快速地显示所有小部件。
在控制台中我得到两个错误:
"HTML1115: X-UA-Compatible META tag ('IE=edge,chrome=1') ignored because document mode is already finalized."
和
"?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F56094476&show_artwork=false
SCRIPT5009: 'Object' is undefined
widget-ab572693.js, line 1 character 6728"
答案 0 :(得分:2)
有一个错误/安全功能in IE9(链接已过期,请参阅更新),它阻止了与DOM分离的iframe访问JavaScript运行时环境。因此,在小部件的JavaScript评估中,Object
甚至String
构造函数等基本内容都不可用。
Slidejs插件正在分离幻灯片的div的内容(你可以看到jQuery wrapAll
调用,这有效地删除并重新附加了幻灯片的内容)。我已经尝试仅在幻灯片完成初始化后加载iframe,但即使只将iframe容器display
CSS属性设置为none
,也会阻止iframe在IE9中可见。这是IE9如何处理iframe的另一个问题。
您可以做的另一件事是仅在显示幻灯片后初始化窗口小部件iframe,但遗憾的是,slidejs没有为该事件提供回调API。
所以,我的建议是尝试另一个插件,该插件可以为您提供相同的功能,但可以让您在幻灯片上显示iframe,或者通过隐藏幻灯片position:absolute;left:-9999px
或其他类似的内容来修补此问题。使用display:none
。
我希望这有帮助!
<强> UPD 即可。 MSDN“移动”(或删除)该链接的内容。该文章的Wayback机器链接是here。