Как остановить SWF внутри вкладки jQuery UI от перезагрузки - PullRequest
5 голосов
/ 10 апреля 2010

У меня есть фильм SWF внутри вкладки пользовательского интерфейса jQuery, и проблема, с которой я столкнулся, заключается в том, что SWF перезагружается каждый раз, когда я щелкаю по вкладке на другой вкладке, а затем нажимаю назад. Я могу проверить DOM и увидеть, что div, содержащий SWF, все еще находится в DOM, когда я щелкаю, поэтому я не знаю, почему это, кажется, перезагружает его, когда я возвращаюсь на вкладку.

Я добавил следующие правила CSS, чтобы запретить отображение: none, но ролик Flash все еще перезагружается:

.ui-tabs .ui-tabs-hide {
    display: block !important;
    position: absolute;
    left: -10000px;
}

Обновление: оказывается, это связано со следующей ошибкой Firefox , существующей с 2001 года / Firefox 0.9. У меня все еще нет хорошего обходного пути, однако.

Ответы [ 3 ]

4 голосов
/ 13 апреля 2010

Решение, упомянутое ранее, работает в Chrome, но не по какой-либо причине в Firefox (я уверен, что оно работало некоторое время назад). Я нашел еще одно решение:

сначала вам нужно общее правило, чтобы «скрыть» содержимое без использования display: none;

/** hide the tab without using display:none; **/
.ui-tabs .ui-tabs-hide {    
display: block !important;
height: 0!important;
width: 0!important;
border:none!important;
visibility:hidden!important;

}

/** make sure your swf does not have leftover height when hidden **/
.ui-tabs .ui-tabs-hide object,
.ui-tabs .ui-tabs-hide embed {
    height: 0;
    width: 0;
}

Это работает для меня. Скажи мне, если у тебя работает! Джером ВАГНЕР

1 голос
/ 23 апреля 2014

Так же, как обновление для принятого ответа. В более новых версиях пользовательского интерфейса jQuery классы изменились.

.ui-tabs .ui-tabs-hide

в CSS теперь необходимо заменить на:

.ui-tabs .ui-tabs-panel[aria-hidden="true"]

Надеюсь, что поможет

1 голос
/ 10 апреля 2010

Некоторые браузеры (например, Firefox) перезагружают флэш-фильмы, как только вы делаете на них скрытие / показ (display: none;). Это то, что происходит с системой вкладок. Единственное решение, которое я знаю, это

  1. иметь вспышку с положением: абсолютное;
  2. прослушивание события системы вкладок
  3. убедитесь, что вспышка перемещается внутрь и наружу экрана, когда вкладка показана / скрыта

Это может быть сложно, если вам нужно универсальное решение с несколькими вспышками.

Надеюсь, это поможет вам

...