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

Не удается щелкнуть кнопкой мыши во флэш-памяти Firefox.

У меня есть webapp, встраивающий некоторый флэш-контент в iframe. Флэш-часть запрашивает доступ к веб-камере. В firefox/mac os пользователь не может нажать кнопку "Разрешить". Это происходит только тогда, когда страница, встраивающая swf файл, загружается в iframe, она отлично работает при распределении по отдельности. С кем-то сталкивался с подобной проблемой? Знаете ли вы обходные способы?

EDIT: для дальнейшего использования: мы позиционировали некоторые вещи через JS, и у нас были позиции, использующие "половинные пиксели" (например, 20.5px). Как только мы зафиксировали, что все работает нормально.

4b9b3361

Ответ 1

Я обнаружил, что эта ошибка также будет существовать в ситуациях, когда вы используете auto auto в CSS.

Например, в фиксированной ширине и выровненном по центру макете типично использовать "margin: 0px auto"; чтобы содержание было хорошо сосредоточено. Это, по-видимому, создает возможные (вероятные) десятичные поля слева и справа для контента. Это не проблема для Firefox. Он отлично справляется с десятичными смещениями пикселей.

Но виджеты Flash полностью кажутся уродливыми, когда их контейнер объектов позиционируется с десятичными значениями пикселей. Как минимум, вы не можете взаимодействовать с кнопкой "Разрешить". Для меня это, по-видимому, является основной причиной этой ошибки, о которой вы, как сообщается, часто сообщают многие (поскольку она относится к FF по крайней мере).

Что касается того, почему это происходит только в FF, я не совсем уверен. На моей OSX-машине Safari и Chrome не проявляют такого поведения со вспышками. Возможно, все элементы DOM в Webkit автоматически отображаются с округленными значениями смещения пикселей?

В Firefox я применил это решение (полезно для выравнивания по центру):

$(document).ready( function() {
  repositionContentContainer();
});

function repositionContentContainer() {
  // this routine is a complete hack to work around the flash "Allow" button bug
  if ( $("#content").length > 0 ) {

    //Adjust the #content left-margin, since by default it likely isn't an int
    setLeftMargin();
    //If the User resizes the window, adjust the #content left-margin
    $(window).bind("resize", function() { setLeftMargin(); });
  }
}

function setLeftMargin() {
  var newWindowWidth = $(window).width();
  var mainWellWidth = $("#content").width();
  // create an integer based left_offset number
  var left_offset = parseInt((newWindowWidth - mainWellWidth)/2.0);
  if (left_offset < 0) { left_offset = 0; }
  $("#content").css("margin-left", left_offset);
}

Ответ 2

Настройка wmode на direct "исправлена.
Не нужно устанавливать значения "margin" / "position" как целые числа.

Обратите внимание, что "прямой" wmode доступен с Flash 10 и не работает в IE

Ответ 3

Эта проблема отслеживается в базе данных Adobe:

http://bugs.adobe.com/jira/browse/FP-4656

Основная проблема заключается в том, что Firefox использует полупиксельное позиционирование, а adobe использует его нерегулярно после изменения размера. Это происходит через центрированные swfs на странице или еще хуже, если swf находится внутри централизованного iframe, например, большинства приложений facebook.

Там размещена матрица решений, которая охватывает масштабирование, изменение размера и другие сложности браузера.

Ответ 4

Я знаю, что это старый вопрос, но я только что обнаружил еще одну проблему, вызывающую ту же ошибку, и это главный результат Google, поэтому я добавляю этот ответ.

Градиент CSS3 на фоне вашей страницы (возможно, на фоне фона в контейнере) также вызовет эту проблему. Удалите градиент, и кнопка снова будет нажата.

Ответ 5

Проверьте также, что у вас нет родительского div (или самого div) с правилом преобразования CSS, например:

transform: translateX(-50%);

Ответ 6

Я смог заставить его работать. Ахух!

Используйте кнопку Tab, пока она не выделит все поле настроек проигрывателя Flash Player, а затем снова нажмите клавишу Tab, пока она не выделит кнопку "вопросительный знак" в правой верхней части окна. Несколько раз нажмите клавишу пробела или кнопку Enter, пока она не откроет другую вкладку в вашем браузере. Теперь вернитесь с предыдущей страницы, где установлены параметры Flash Player, снова нажмите клавишу Tab, пока она не выделит кнопку "Разрешить" или "Запретить" в зависимости от того, что вы будете делать. Нажмите клавишу пробела или кнопку Enter и вуаля! Там вы идете!

Надеюсь, это поможет. Приятного вечера всем!:)