Ошибка iframe Adobe Edge Firefox

У меня есть анимация с использованием Adobe Edge 6. Я пытаюсь включить анимацию в файл iframe. Код хорошо работает на Chrome и IE 10. Но в Firefox я получаю ошибку javascript в библиотеке Adobe Edge TypeError: C.getComputedStyle(...) is null -> edge.6.0.0.min.js Line-77.

Если я открою страницу анимации на Firefox 43, она работает хорошо, я получаю сообщение об ошибке только при включении анимации внутри iframe.

Страница анимации:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <title>Untitled</title>
    <!--Adobe Edge Runtime-->
    <script type="text/javascript" charset="utf-8" src="/Scripts/edge.6.0.0.min.js"></script>
    <style>
        .edgeLoad-EDGE-1689000111 {
            visibility: hidden;
        }

        div {
            position: absolute !important;
        }
    </style>
    <script>
        AdobeEdge.loadComposition('Test', 'EDGE-1689000111', {
            scaleToFit: "both",
            centerStage: "none",
            minW: "0",
            maxW: "undefined",
            width: "870px",
            height: "350px"
        }, { dom: [] }, { dom: [] });
    </script>
    <!--Adobe Edge Runtime End-->
</head>
<body style="margin:0;padding:0">
    <div id=" stage" class="EDGE-1689000111">
    </div>
</body>
</html>

iframe с использованием страницы анимации:

<iframe class="embed-responsive-item" frameborder="0" src="PATH"></iframe>

person António    schedule 15.12.2015    source источник


Ответы (1)


Я столкнулся с той же проблемой несколько дней назад. Одной из возможных причин является правило display:none для iframe (или одного из его родительских узлов). Это может вызвать ошибку, даже если позже для правила «отображения» будет установлено значение «блокировать».

Вот соответствующая проблема на bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=548397

Не могли бы вы проверить, есть ли у iframe (или его родителей) «display: none» в то время, когда он впервые появляется в DOM?

Теперь мы установим «opacity:0» или «visibility:hidden» вместо «display:none».

person V. Fedoseev    schedule 02.06.2016
comment
Да, у родителей отображение: нет. Эта анимация находится внутри вкладок начальной загрузки. Обходной путь, который я использовал (комментарий к ошибке 548397): if (/firefox/i.test(navigator.userAgent)){ window.oldGetComputedStyle = window .getComputedStyle; window.getComputedStyle = функция (элемент, псевдоЭльт) { var t = window.oldGetComputedStyle (элемент, псевдоЭльт); если (t === ноль) {возврат {}; } еще{ вернуть т; } }; } - person António; 03.06.2016
comment
Конечно, этот обходной путь намного лучше, если бы вы могли контролировать код iframe. Мое предложение касалось кейсов с внешним содержимым iframe (например, рекламные баннеры на странице). Нашли ли вы какую-либо информацию о решении этой проблемы в краевых источниках? Спасибо. - person V. Fedoseev; 06.06.2016
comment
к сожалению, лучшего решения я не нашел - person António; 08.06.2016