2015-12-15 3 views
0

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

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

Animation страница:

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

ответ

0

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

Вот соответствующий вопрос в Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=548397

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

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

+0

Да, у родителей есть «дисплей: нет». Эта анимация находится внутри вкладок начальной загрузки. Обходной путь, который я использовал (комментарий к Bug 548397): if (/firefox/i.test(navigator.userAgent)) { window.oldGetComputedStyle = window .getComputedStyle; window.getComputedStyle = function (element, pseudoElt) { var t = window.oldGetComputedStyle (element, pseudoElt); if (t === null) { return {}; } else { return t; } }; } – Freedom

+0

Несомненно, это обходное решение намного лучше, если вы можете управлять кодом iframe. Мое предложение касалось случаев с внешним содержимым iframe (например, рекламные баннеры на странице). Вы нашли какую-либо информацию об устранении этой проблемы в пограничных источниках? Спасибо. –

+0

К сожалению, я не нашел лучшего решения – Freedom

Смежные вопросы