开发者

Jquery UI dialog - Flash content shining through on scroll in Safari

开发者 https://www.devze.com 2023-02-05 15:37 出处:网络
I have a problem similar to this: How to stop Flash content shine-through jQuery UI Dialog in Firefox on Windows

I have a problem similar to this:

How to stop Flash content shine-through jQuery UI Dialog in Firefox on Windows

..but only in safari and only when when I'm scrolling the content inside the dialog. When the dialog appear, everything is fine. But when you start scrolling, with the mouse wheel or by dragging the bar, the flash content start to shine through and come back. For example:

start: Fine scroll one step: Flash bleeding through scroll second step: Fine scroll third step: Flash bleeding through etc.

When in modal "mode", the modal background come over the dialog, but is still over the flash.

Chrome and Firefox works fine. I tried "wmode=transparent" and "wmode=opaque" and check the z-index, but nothing come up.

Help?

Flash code with swfobject:

<script type="text/javascript">       
   var flashvars = false;
   var params = {wmode: 'opaque', bgcolor: '#FFF4D5'};
   var attributes = false;
   swfobject.embedSWF("chat/logo.swf", "logo", "250", "100", "9.0.0", "../expressInstall.swf", flashvars, params, attributes);
              </script>

Dialog opening thingy:

function openAdminDialog(buttons) {

 $("#admin-dialog").dialog({
  autoOpen: false,
  wi开发者_运维技巧dth: 925,
  height: 500,
  modal: true,
  title: 'Title',
  buttons: buttons,
  close: function() { 
   $('#admin-dialog').remove();
  }
 });
 $('#admin-dialog').dialog('open');
}

EDIT: SWFObject translate to this (from Safari console):

<object type="application/x-shockwave-flash" data="chat/logo.swf" width="250" height="100" id="logo" style="visibility: visible; "><param name="wmode" value="transparent"><param name="bgcolor" value="#FFF4D5"></object>


Same problem here, only on Safari for Mac, works fine for all other browsers. Even select, text and background images where showing through (flickering, to be exact). The only way I could fix it was hiding the flash container, and showing it again on close.

$(e).click(function(){
    $(popup).dialog({       
        close: function(){
            $(flashElem).show();
        }
    });
    $(flashElem).hide();
    return false;
});

Not optimal, but works.

0

精彩评论

暂无评论...
验证码 换一张
取 消