3

我尝试使用 slidejs 在 javascript 滑块中使用多个 soundcloud html5 小部件(iframe

除了 IE,所有浏览器都可以毫无问题地滑动小部件。在 IE9 中,仅显示第一张幻灯片中的小部件,其他小部件以某种方式隐藏。您可以找到滑块的示例

我发现重新加载页面后,您可以快速单击“下一步”并显示所有小部件。

在控制台中我得到两个错误:

"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"
4

1 回答 1

2

IE9 中有一个错误/安全功能(链接已过期,请参阅更新),它会阻止从 DOM 分离的 iframe 访问 JavaScript 运行时环境。因此,在小部件的 JavaScript 评估期间,基本的东西Object(甚至String构造函数)都不可用。

Slidejs 插件正在分离幻灯片 div 的内容(您可以看到 jQuerywrapAll调用,它有效地删除和重新附加幻灯片的内容)。我尝试仅在 slidejs 完成初始化后才加载 iframe,但即使只是将 iframe 容器displayCSS 属性设置为none也会阻止 iframe 在 IE9 中可见。这是 IE9 如何处理 iframe 的另一个问题。

您可以做的另一件事是仅在幻灯片显示后初始化小部件 iframe,但不幸的是,slidejs 没有为该事件提供回调 API。

所以,我的建议是尝试另一个插件,它可以为您提供相同的功能,但可以让您在显示的幻灯片上创建 iframe,或者通过隐藏幻灯片position:absolute;left:-9999px或类似的东西而不是使用display:none.

我希望这有帮助!

升级版。MSDN“移动”(或删除)了该链接的内容。那篇文章的 Wayback 机器链接在这里

于 2012-11-26T16:53:55.883 回答