我知道很多人已经问过这个问题,但我认为我的情况有点不同。
我有一个网站,其中有一些广告是Flash隐藏在div中,因为xhtml/html兼容性问题。但Flash元素位于我的jQuery对话框的顶部,这并不理想。
有些解决方案建议将wmode设置为opaque,但我不能这样做,因为我的广告是输出Flash元素的脚本。
另一个解决方案建议在显示对话框时隐藏广告。所以我的问题是:是否有一种方法可以在jQuery对话框可见的情况下将flash内容置于其后面,而不改变flash代码?
最好的问候, Lasse Espeholt
更新: 我现在用赏金重新打开了这个问题。目前为止,我在“显示对话框”时隐藏了所有Flash广告。但这仍然不是最佳解决方案。因此,我正在寻找一种脚本,可以使每个Flash动画变为opaque(最好是jQuery解决方案,但纯JavaScript解决方案也可以)。或者如果还有其他未在此问题中讨论的解决方案,我很乐意听到它们 :)
更新2: 到目前为止,我已经制作了这个脚本:
function opaqueAllFlashMovies() {
// Embed Flash movies
$('embed[wmode!="opaque"]').attr('wmode', 'opaque').wrap('<div>');
// Object flash movies with a wmode param
$('object[classid$="-444553540000"] parem[wmode]').attr('value', 'opaque');
// Object flash movies without a wmode param
$('object[classid$="-444553540000"]').not('param[wmode]').append('<param name=\'wmode\' value=\'opaque\'/>').wrap('<div>');
}
代码在Firefox和Chrome中有效,但在IE中无效。显然,.append
函数失效了。有什么想法吗?