Вопрос или проблема
В Firefox я хотел бы перейти на другую вкладку, пока реклама воспроизводится на текущей вкладке, но эта надоедливость при потере фокуса ставится на паузу.
Я хотел бы обмануть рекламу, чтобы она думала, что все еще имеет фокус, чтобы она продолжала воспроизводиться, и мне не пришлось ждать, пока она закончится.
Как я могу заставить вкладку Firefox ложно считать, что она все еще в фокусе?
Вы можете предположить, что страница использует технологии, описанные здесь. Вероятно, используются window.onfocus
и window.onblur
. Я не помню, где точно это было нужно, когда задавал вопрос; это не обязательно используется для обмана рекламы. Я ищу общее решение.
Поскольку вы не предоставили деталей сайта, вот одно решение, которое вы можете попробовать.
- Установите расширение Greasemonkey, чтобы запускать пользовательские JavaScript на сайтах по вашему выбору.
- Установите пользовательский скрипт Always on focus.
Краткое описание скрипта: Некоторые страницы проверяют свойство document.hidden и не отображают контент, если страница не в фокусе. Этот скрипт заставит их думать, что они в фокусе, так что вы сможете предварительно загрузить их на вкладке и посетить, когда они закончат загрузку.
- Настройте скрипт для конкретных веб-сайтов по вашему желанию во время установки (или позже).
Ответ Grease/Tamper-monkey не работает на вечеринках просмотра Facebook, но ручное удаление обработчиков события blur работает в Chrome 75:
Я не знаю, сработает ли это для кого-то, кто еще может зайти на эту страницу, но я нашел расширение для Firefox под названием “Always active Window – Always Visible.” Это произошло потому, что я пытался записать несколько окон в OBS Studio 26.1 (запись экрана), и OBS не записывал браузерные окна, которые были свернуты (или которые я не активно смотрел в данный момент). Это произошло, потому что Firefox не отображал активность (в этом случае – живые торги) в окнах, которые были свернуты или которые я не активно смотрел.
Вам нужно создать пользовательский скрипт. Это JavaScript, который работает в Firefox (или Chrome) и манипулирует конкретными веб-сайтами.
Инструменты, такие как Greasemonkey (http://www.greasespot.net), могут быть использованы для этого. Возможно, уже есть готовое на http://userscripts.org.
Но, как уже прокомментировал @harrymc, было бы полезно иметь пример URL.
Я собираюсь ответить на вопрос, который, как я думаю, вы имеете в виду.
Что вы хотите – это чтобы Flash работал в фоновом режиме, когда вы потеряли фокус. Это большая проблема с играми на Flash, и следующие моменты из Руководства по администрированию Flash от Adobe должны заставить все работать, когда вы не в фокусе.
Расположение файла mms.cfg Допустим, установка Windows по умолчанию, Flash
Player ищет файл mms.cfg в следующих системных директориях:• 32-битная Windows – %WINDIR%\System32\Macromed\Flash
• 64-битная Windows – %WINDIR%\SysWow64\Macromed\Flash
Что вы хотите сделать, так это создать этот файл mms.cfg (вам понадобится доступ администратора, конечно) с следующими строками:
ProtectedMode=0
FullFramerateWhenInvisible=true
Я помню, что отключение защищенного режима было необходимо, даже несмотря на то, что его заявленная цель заключается в “песочнице” приложений Flash – по какой-то причине другой вариант не работал без него. YMMV, конечно – попробуйте сначала без отключения защищенного режима – прошло много времени с тех пор, как я настраивал это на своих компьютерах.
FullFramerateWhenInvisible – это опция, которая позволяет Flash работать, когда окно не имеет фокуса.
Еще раз, это не конкретный вопрос, который вы задавали, но если это не тот ответ, по крайней мере, это направит вас в правильном направлении. 🙂
Ссылка:
Руководство администратора: http://www.adobe.com/devnet/flashplayer/articles/flash_player_admin_guide.html
Трюк с частотой кадров: http://tukkun.webs.com/ (#3 на этой веб-странице в данный момент)
Один простой (и дорогой) трюк: запустите браузер на выделенной виртуальной машине.
Таким образом, вы можете оставить программу работающей, как будто это единственная цель компьютера.
Это работает с любым приложением, включая браузеры.
Я не думаю, что вы действительно сможете сделать что-либо, чтобы сохранить фокус.
Вы можете попробовать изменить веб-сайт или попробовать открыть страницу в новом окне, посмотрите, сработает ли это.
Если вы знаете, как программировать на C++/C#, вы можете попробовать давать Firefox фокус каждый раз, когда он теряет фокус, или просто постоянно держать его в фокусе, это не так сложно, и если хотите, я могу написать код для вас.
Также есть способ изменить реестр, но я не знаю, сработает ли это для вас или нет.
Вот инструкции:
- Откройте regedit, нажав Win + R или просто введите его в строке поиска меню Пуск.
- В regedit перейдите к HKEY_CURRENT_USER > Control Panel > Desktop.
- Измените “ForegroundLockTimeout”, тип ключа – DWORD (шестнадцатеричный), по умолчанию составляет 30d40 (200000) миллисекунд.
не забудьте экспортировать ключ, чтобы сделать резервную копию перед редактированием
или вы можете использовать эту программу под названием Tweak UI, но я не уверен, что она работает корректно, так как была создана для Windows XP.
Ответ или решение
Для того чтобы заставить вкладку в Firefox "допускать", что она все еще имеет фокус, некоторые пользователи стремятся обойти ограничения, накладываемые веб-сайтами на воспроизведение видео или анимаций при потере фокуса. Вот несколько подходов, которые вы можете попробовать:
-
Использование расширений браузера:
Установите расширение, такое как Greasemonkey, которое позволяет запускать пользовательские скрипты на выбранных веб-сайтах. Вы можете использовать готовые скрипты, такие как Always on focus, которые заставляют страницы думать, что они остаются в фокусе, даже если вкладка неактивна. -
Удаление обработчиков событий:
Вы также можете воспользоваться функцией инспектора в Firefox, чтобы удалить обработчики событийblur
илиfocus
для окон. Это можно сделать, следующим образом:- Откройте инструменты разработчика на странице, перейдите в вкладку "Инспектор".
- Найдите и удалите обработчики событий, которые призваны срабатывать при потере фокуса.
-
Создание пользовательских скриптов:
Если вы знакомы с JavaScript, можно написать свой собственный пользовательский скрипт, который будет предотвращать утрату фокуса. Эта опция требует наличия некоторых знаний программирования, но может быть наиболее гибким решением. -
Использование виртуальной машины:
Для более кардинального подхода вы можете рассмотреть возможность запуска браузера в виртуальной машине, что позволяет ему работать без потери фокуса. Вы можете настроить эту виртуальную машину так, чтобы она работала только для этой задачи. -
Параметры Flash:
Если воспроизводимый контент использует Flash, вы можете попробовать настроить файлmms.cfg
, чтобы заставить Flash работать в режиме фонового воспроизведения. Сделать это можно, создав или изменив файлmms.cfg
в системных директориях Flash Player, добавив:ProtectedMode=0 FullFramerateWhenInvisible=true
-
Редактирование реестра Windows:
Хотя это не рекомендуется, можно попробовать изменить параметрForegroundLockTimeout
в реестре:- Открыть редактор реестра, нажав
Win + R
, затем введитеregedit
. - Перейдите по пути HKEY_CURRENT_USER > Control Panel > Desktop.
- Измените значение ключа
ForegroundLockTimeout
на более высокое число.
Напоминаем, что любые изменения реестра могут повлиять на стабильность системы, поэтому рекомендуется делать резервные копии.
- Открыть редактор реестра, нажав
Каждый из этих методов имеет свои ограничения, и некоторым пользователям может не подойти возможность обойти ограничения, установленные веб-сайтами или браузером. Попробуйте различные подходы и выберите тот, который лучше всего соответствует вашим нуждам.