Только что закончил разработку сайта музыканта Dao Bish и хочу поделиться решением проблемы, с которой до сих пор я не сталкивался и решения в сети так и не смог отыскать.


А проблема заключается в том, что при открытии окна lightbox весь flash на страницы скрывается, это делается для того чтобы flash ролики не перекрывали окно lightbox. При этом в браузерах семейства Firefox и Safari происходит выгрузка скрытых роликов, что в моем случае приводило к остановке воспроизведения музыкальных композиций Дао.

Решил проблему следующим образом - изменил код в скрипте lightbox скрывающий sfw, так что бы он не скрывал (visibility: hidden), а изменял размер flash ролика на width:0, height:0.

Изначально код lightbox.js выглядил так:

toggleSelectsFlash: function (state) {
if (state == 'visible') {
$("select.lightbox_hidden, embed.lightbox_hidden, object.lightbox_hidden").show();
}
else if (state == 'hide') {
$("select:visible, embed:visible, object:visible").addClass("lightbox_hidden");
$("select.lightbox_hidden, embed.lightbox_hidden, object.lightbox_hidden").hide();
$("select.lightbox_hidden, div.lightbox_hidden, object.lightbox_hidden").hide();
}
},

После моих хаков:

toggleSelectsFlash: function (state) {
if (state == 'visible') {
$("object.lightbox_hidden").each(function(il,el) {
$(el).width(parseInt($(el).attr('ori_width')));
$(el).height(parseInt($(el).attr('ori_height')));
});
}
else if (state == 'hide') {
$("select:visible, embed:visible, object:visible").addClass("lightbox_hidden");
$("object.lightbox_hidden").each(function(il,el) {
$(el).attr('ori_width', $(el).width());
$(el).attr('ori_height', $(el).height());
$(el).width(0).height(0);
});
}
},

Хочешь сразу узнавать о новых материалах опубликованных на сайте? Подпишитесь на RSS или на e-mail рассылку: