【发布时间】:2010-03-10 16:46:27
【问题描述】:
我有一个广告,它基本上是 IFRAME 中的闪存文件。不幸的是,我无法控制 flash 文件的 wmode。
有什么方法可以把 div 放在 flash 上面吗?
更新:那么 Wibiya (wibiya.com) 是如何做到的?
【问题讨论】:
我有一个广告,它基本上是 IFRAME 中的闪存文件。不幸的是,我无法控制 flash 文件的 wmode。
有什么方法可以把 div 放在 flash 上面吗?
更新:那么 Wibiya (wibiya.com) 是如何做到的?
【问题讨论】:
出于向后兼容性的原因,您可以尝试使用许多浏览器都支持的 iframe cut-out hack。
http://neugierig.org/software/chromium/notes/2009/07/windowed-windowless-plugins.html
添加一个绝对定位的具有适当尺寸的空 iframe,在您希望底层 HTML “渗透”的任何地方充当掩码。 Wibiya大概就是这么干的,虽然我没看过。
如果您正在寻找灵感,Closure 提供了一个帮助类来执行此类操作:http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/ui/iframemask.js
【讨论】:
不。无窗口对象与有窗口对象(例如 IE 的 ActiveX 控件)在不同的“平面”上呈现。微软的解释显然只适用于 Internet Explorer,但其他浏览器似乎也以类似的方式工作。
所有有窗口的元素都将自己绘制在所有无窗口的顶部 元素,尽管他们的意愿 容器。但是,窗口元素 请遵循 z-index 属性 互相尊重,就像 无窗口元素遵循 z-index 属性相互关联。
所有无窗口元素都被渲染 在同一个 MSHTML 平面上,并窗口化 元素在单独的 MSHTML 上绘制 飞机。您可以使用 z-index 来 在同一平面上操作元素 但不能与元素混搭 在不同的平面。你可以重新排列 每个元素的 z 索引 飞机,但有窗的飞机总是 在无窗的顶部绘制 飞机。
http://support.microsoft.com/kb/177378
这实际上是广告服务的一个好处 - 它可以防止发布商掩盖、覆盖和稍微改变他们的广告(例如,在广告前面放置一张图片以使其与网站融为一体)。
【讨论】: