Встроенный элемент (Flash) переключает прокрутку колесика мыши, когда скрыто и отображается снова
Привет всем, я был бы признателен за некоторые идеи. Я исследовал печально известную проблему "фокусировки флэш-клавиатуры", но я считаю, что наша проблема может включать обходной путь, с которым уже столкнулся кто-то другой. Я пробовал различные решения, которые я нашел на stackru и других сайтах, которые я суммирую ниже.
У нас есть веб-приложение, и определенный интерфейс загружает несколько элементов div, которые мы используем в качестве "вкладок". Когда пользователь нажимает одну из вкладок, мы скрываем текущий элемент div и отменяем скрытие нового. Наша главная вкладка (которая загружается при загрузке страницы) встраивает документ из Scribd, который загружается как Flash-ролик. Когда пользователь нажимает на фильм Flash, он прокручивается с помощью мыши / клавиатуры, как обычно, и при щелчке за пределами элемента управления документом возвращается, как и ожидалось.
Когда они переходят на другую вкладку, а затем возвращаются на исходную вкладку и щелкают по встроенной Flash, чтобы перемещаться по ней, встроенная Flash блокирует прокрутку мыши и не отпускает ее. Пользователь может щелкнуть этот документ и прокрутить с помощью клавиш со стрелками, а затем щелкнуть по документу и прокрутить родительское окно с помощью клавиш со стрелками, но прокрутка мыши все еще привязана к встроенному Flash-ролику. Единственное средство - это жесткое обновление страницы.
Что я пробовал, когда пользователь нажимает на новую вкладку: если старая вкладка "домашняя", удалите встроенный элемент из DOM:
saved_element = $('[name="flash_embed_object_name"]').remove();
Если новая вкладка 'home', добавьте элемент обратно в DOM:
$('#parent_div').append(saved_element);
Это не работает - я могу подтвердить, что элемент удален из DOM, но когда он возвращается в DOM, он переключает прокрутку мыши при нажатии, как и раньше. Я также попробовал подобное решение, но вместо того, чтобы удалить элемент, который я назвал
$('[name="flash_embed_object_name"]').blur();
а также $('#clicked_tab_div').focus();
но это тоже не помогло. У кого-нибудь есть другие идеи? Моя следующая мысль заключается в том, что мне как-то нужно остановить воспроизведение Flash-фильма, а затем он вернет фокус на страницу.
Любой вклад очень ценится. Спасибо!
1 ответ
Решение не заключалось в том, чтобы скрыть div, который содержит встроенный Flash - при этом встроенный элемент будет "обновляться" при повторном отображении. Мы изменили положение элемента, чтобы по существу скрыть его от глаз, но не скрывая его.