Встроенный элемент (Flash) переключает прокрутку колеса мыши, когда скрыто и отображается снова - PullRequest
0 голосов
/ 04 марта 2011

Привет всем, я был бы признателен за некоторые идеи.Я исследовал печально известную проблему «фокусировки флэш-клавиатуры», но я считаю, что наша проблема может включать обходной путь, с которым уже столкнулся кто-то другой.Я пробовал различные решения, которые я нашел на stackoverflow и других сайтах, которые я суммирую ниже.

У нас есть веб-приложение, и определенный интерфейс загружает несколько элементов 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 Ответ

0 голосов
/ 10 марта 2011

Разрешение не заключалось в том, чтобы скрыть div, содержащий встроенный Flash - при этом встроенный элемент «обновлялся» при повторном отображении.Мы изменили положение элемента, чтобы по существу скрыть его из поля зрения, но не скрывая его.

...