我知道很多人都问过这个问题,但我觉得我的情况有点不同。
我有一个网站,我有一些广告,这是闪光隐藏在一个,因为xhtml/html的兼容性问题。但flash元素位于我的jQuery对话框之上,这并不理想。
一些解决方案建议将wmode设置为不透明,但我不能,因为我的广告是输出flash元素的脚本。
另一种解决方案是在显示对话框时隐藏广告。所以我的问题是:有没有一种方法可以在我的jQuery对话框可见时将flash内容放在后面,而不需要更改flash代码?
致以最好的问候,Lasse Espeholt
更新:我现在已经用赏金重新提出了这个问题。至于现在,我隐藏了“显示对话框”上的每一个Flash广告。但这仍然不是一个最优的解决方案。所以,我正在寻找一个脚本,可以使每一个闪光动画不透明(一个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>');
}
它可以在FF和Chrome中工作,但不能在IE中工作。显然,.append
失败了。有什么想法吗?
发布于 2009-10-04 14:39:14
除非将wmode设置为不透明(或透明),否则不能将HTML放在Flash前面。
使用默认的wmode ("window"),Flash Player接管其区域内的所有渲染和用户交互。因此浏览器不能在该区域显示任何HTML。wmode=“不透明”(或wmode=“透明”)所做的是,它禁用了这种默认行为,并在浏览器中集成了Flash Player区域,通常是渲染和分层等。
但是你不需要修改任何Flash内容来设置wmode,因为这是在超文本标记语言中完成的(或者通过SWFObject或其他插入Flash对象元素的脚本),所以如果你可以控制你提到的“输出flash元素的脚本”,你可以在那里设置wmode。
发布于 2011-03-15 08:25:17
我想我有一个解决方案。使用jquery-ui对话框,花了几个小时试图弄清楚这一点-对我来说很有效,
逻辑是,如果我不能让jquery放在前面,就让所有的flash内容都放回去。研究将我带到了这个链接--最终它起作用了。
How do I programmatically set all 's to have the wmode set to opaque?
function makeObjectsOpaque3() {
var elementToAppend = document.createElement('param');
elementToAppend.setAttribute('name', 'wmode');
elementToAppend.setAttribute('value', 'opaque');
var objects = document.getElementsByTagName('object');
for(var i = 0; i < objects.length; i++) {
var newObject = objects[i].cloneNode(true);
elementToAppend = elementToAppend.cloneNode(true);
newObject.appendChild(elementToAppend);
objects[i].parentNode.replaceChild(newObject, objects[i]);
}
}
window.onload = makeObjectsOpaque3;
和
if(window.onload) {
var onLoad = window.onload;
window.onload = function() {
onLoad();
makeObjectsOpaque3();
};
} else {
window.onload = makeObjectsOpaque3;
}
发布于 2009-10-04 13:34:11
在flash加载后用javascript手动将wmode设置为不透明怎么样?
https://stackoverflow.com/questions/1515939
复制相似问题