Flash在jQuery对话框之上

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (40)

由于xhtml / html兼容性问题,我有一个网站在Flash中隐藏了一些广告。但闪存元素是在我的jQuery对话框的顶部,这是不理想的。

有些解决方案建议将wmode设置为不透明,但我不能,因为我的广告是输出Flash元素的脚本。

另一个解决方案建议在显示对话框时隐藏广告。所以我的问题是:有没有办法将Flash内容放在我的jQuery对话框后面,而不会改变Flash代码?

至于现在,我隐藏每个Flash广告“显示对话框”。但是这仍然不是最佳的解决方案。所以,我正在寻找一个脚本,它可以使每个Flash动画都变得不透明

更新: 到目前为止,我已经制作了这个脚本:

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失败了。有任何想法吗?

提问于
用户回答回答于

除非将wmode设置为opaque(或透明),否则不能将HTML放在Flash前面。

使用默认的wmode(“窗口”),Flash Player将接管其区域中的所有呈现和用户交互。所以浏览器不能在该区域显示任何HTML。wmode =“opaque”(或wmode =“transparent”)的作用是禁用此默认行为,并将Flash Player区域集成到浏览器常用的渲染和分层等中。

但是你不需要更改任何Flash内容来设置wmode,因为它是在HTML中完成的(或者通过SWFObject或其他插入Flash对象元素的脚本)

用户回答回答于

我想我有办法了。使用jQuery-UI对话框,花了好几个小时想办法解决这个问题,

逻辑是,如果我不能让jQuery走到前面,让所有的Flash内容都回去。最后它终于起作用了。

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;
}

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问5 回答
  • 无聊至极

    4 粉丝504 提问5 回答
  • 富有想象力的人

    4 粉丝0 提问4 回答
  • 嗨喽你好

    7 粉丝480 提问4 回答

扫码关注云+社区

领取腾讯云代金券