Подтвердить что ты не робот

Вспышка в диалоговом окне jQuery

Я знаю, что многие задавали этот вопрос, но я думаю, что моя ситуация немного отличается.

У меня есть сайт, на котором у меня есть некоторые объявления, которые скрыты в Flash из-за проблем с совместимостью xhtml/html. Но flash-элементы находятся поверх диалогов jQuery, которые не идеальны.

Некоторые решения предложили установить wmode на непрозрачный, но я не могу, потому что мои объявления - это скрипты, которые выводят элементы flash.

Еще одно решение предложило скрывать объявления, когда отображается диалог. Итак, мой вопрос: есть ли способ разместить flash-контент за мои диалоги jQuery, пока они видны и не изменяют код флэш-памяти?

С уважением, Лассе Эспехольт

Update: Теперь я снова заново задал вопрос с щедростью. На данный момент я скрываю каждое Flash-объявление в диалоговом окне "show dialog". Но это все еще не оптимальное решение. Итак, я ищу script, который может сделать каждую флеш-анимацию непрозрачной (решение jQuery было бы самым приятным, но простое решение для JavaScript). Или, если в этом вопросе не будет обсуждаться другое решение, я буду рад услышать об этом:)

Обновление 2: До сих пор я сделал это script:

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 терпит неудачу. Любые идеи?

4b9b3361

Ответ 1

Вы не можете поместить HTML перед Flash, если вы не установите wmode непрозрачным (или прозрачным).

При использовании wmode по умолчанию ( "окно" ) Flash Player берет на себя всю визуализацию и взаимодействие с пользователем в своей области. Таким образом, браузер не может отображать HTML в этой области. То, что wmode = "opaque" (или wmode = "transparent" ), заключается в том, что оно отключает это поведение по умолчанию, и оно объединяет область Flash Player в обычном рендеринге и расслоении браузеров и т.д.

Но вам не нужно изменять какой-либо Flash-контент для установки wmode, поскольку он выполняется в HTML (или через SWFObject или другой script, который вставляет элемент объекта Flash), поэтому, если у вас есть контроль над "скриптами" который выводит элементы вспышки ", о котором вы упоминаете, вы можете позаботиться о настройке wmode.

Ответ 2

Я думаю, у меня есть решение. Используя диалог jquery-ui, потраченные часы и часы, пытаясь понять это, работали на меня,

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

Как программно установить для всех <object> , чтобы wmode был непрозрачным?

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

Ответ 3

Как насчет ручной настройки wmode на непрозрачный с javascript после того, как флэш уже загружен?

Ответ 4

Я только что прочитал это сообщение и попытался добавить параметр параметра wmode = "opaque" в тег объекта. Он работает для IE 8. Прошу прощения, если мой пост слишком поздно.

Ответ 5

Найдите google для "iframe shim". В принципе, помещая iframe за html, он перенесет содержимое Flash (игнорируя настройки wmode).

До свидания