Как остановить просмотр содержимого Flash через JQuery UI Dialog в Firefox на Windows - PullRequest
7 голосов
/ 02 марта 2009

Я использую диалоговое окно jQuery UI, в IE & FF в Windows я получаю базовый Flash-контент, сияющий через диалоговое окно.

Я решил эту проблему в IE, включив параметр bgiframe в диалоговом окне jQuery и изменив сценарий bgiframe, чтобы он применялся к любым браузерам Windows, однако я все еще получаю информацию о FF.

Обратите внимание, что я не могу точно знать, где будет отображаться содержимое Flash, так как обычно это виджеты Flash, которые пользователи добавляли на страницы, хотя я думал о временном скрытии содержимого Flash при отображении диалогового окна - это единственный вариант, оставленный мне?

Ответы [ 6 ]

8 голосов
/ 03 марта 2009

Попробуйте параметр wmode=transparent или wmode=opaque.

3 голосов
/ 17 марта 2009
<object ...>
  ...
  <param name="wmode" value="opaque" />
  ...
  <embed ... wmode="opaque" ...></embed>
</object>
2 голосов
/ 10 марта 2009

Однажды я столкнулся с подобной проблемой. Я просто скрываю вспышку и показываю ее снова, когда диалог закрывается:

<script type="text/javascript">
    /*notification dialog setup*/
        function SetupDialog()
        {
            $("div#divNotice").dialog(
                {  autoOpen: false,
                   modal: true,
                   overlay: { opacity: 0.5, background: '#050505' },
                   buttons: {
                              "I Agree": function(){
                                            $("#Movie").css("display","inline")//Show movie when dialog is closed
                                            .......
                                        },
                              "Close" : function(){
                                            $("#Movie").css("display","inline") //Show Movie if dialog is closed
                                            $(this).dialog("close");
                                        }
                            },
                   title: "",
                   height: 500,
                   width: 600,
                   dialogClass: 'myDialog',
                   position: 'center'
                 }
            );
        }
    </script>
    <script type="text/javascript">
    function ShowDialog()
    {
        /*for Notice dialog */
        $("#divDialog").css("display","block");
        $("#Movie").css("display","none");
        $("div#divDialog").dialog("open");
    }
1 голос
/ 08 октября 2011

Пожалуйста, обратите внимание, что изменение wmode вашей Flash-анимации серьезно увеличит загрузку процессора вашей машины и замедлит ваши анимации. Flash Player использует свое собственное окно поверх окна браузера по уважительной причине. Если для wmode установлено значение opaque, Flash будет вынужден отображаться в окне браузера. С wmode = transparent он даже должен объединить свои визуализации с существующим содержимым сцены браузера.

Обычно я использую ту же технику, которая используется во многих сценариях лайтбокса: переключать все Flash-фильмы невидимыми, пока диалог видим. Это НЕ должно быть сделано путем установки дисплея: нет. Результатом может быть смещение содержимого на остальной части страницы, если прямоугольник Flash больше не находится на сцене. По той же причине вам НЕ следует использовать метод jQueries hide (). Вместо этого используйте visibility: hidden, который по-прежнему занимает пространство скрытого элемента.

Вот мой способ сделать это:

$('#myDialogId').dialog({
    open: function(){
        // hide any flash objects
        $('object').css('visibility', 'hidden');
        // hide any flash embeds
        $('embed').css('visibility', 'hidden');
    },
    close: function(){
        // show any flash objects
        $('object').css('visibility', 'visible');
        // show any flash embeds
        $('embed').css('visibility', 'visible');
        //
    }
});
1 голос
/ 30 мая 2010

в диалоговом окне пользовательского интерфейса jquery используется файл css с именем jquery-ui-x.x.css, где x.x указывает версию

в этом файле вы можете задать переполнение класса .ui-dialog: auto; это решит проблему

0 голосов
/ 02 марта 2009

Либо используйте iFrame в диалоговом окне, либо скрывайте содержимое флэш-памяти на странице при запуске диалогового окна.

...