Как сделать чтобы при открытии новой вкладки в браузере фокус оставался на родительском окне
Простые советы, представляющие собой пошаговые инструкции по оптимизации и работе в операционных системах Win7, Vista, Win XP. Описание и работа популярных программ. Безопасность ПК. Советы не переполнены терминологией и доступны для повторения даже начинающему пользователю.
Приветствие
пятница, 2 декабря 2011 г.
Фокус для вкладок
Нет, фокусов не будет. Хотя как сказать…
Работая в Интернете пользователь, как правило, одновременно открывает кучу вкладок. Такой подход оправдан многими причинами, на которых останавливаться специально нет смысла. Каждый устраивает рабочее окружение по своему усмотрению. Тут важно другое: при большом количестве открытых вкладок очень легко запутаться. И пользователь часто пытается открыть уже открытую ранее вкладку, повторив ввод адреса страницы – ну забыл просто.
Используя браузер Google Chrome для путешествий по страницам сайтов описанную выше ситуацию можно предотвратить. Для этого следует включить специальный режим, при котором Google Chrome обнаружив повторяющеюся вкладку, не станет открывать новую, а перенаправит пользователя к уже загруженной ранее вкладке.
Эта функция включается в панели экспериментальных функций. Кое-что из этих функций уже описывалось в этом блоге, поэтому при желании всегда можно посмотреть, перейдя по ссылкам, приведенным после этого поста.
А конкретно для включения режима установки фокуса для вкладок наберите в адресной строке браузера Google Chrome строчку about:flags и затем щелкните "Enter".
Откроется окно панели экспериментальных функций. Прокрутите страницу до пункта Focus existing tab on open и нажмите кнопку "Включить".
Для того что бы внесенные изменения в браузере вступили в силу опуститесь в самый низ страницы и нажмите кнопку "Перезапустить".
После перезапуска, как только вы попытаетесь открыть вкладку, введя ее URL, уже открытой ранее страницы, произойдет переключение на открытую ранее вкладку.
Этот режим работает только при открытии закладок или при вводе URL страницы, если вы попытаетесь открыть страницу дважды с помощью значков сайтов на панели в главном окне Google Chrome, браузер благополучно запустит их, сколько вы пожелаете.
Репутация: нет
Всего: нет
При нажатии на ссылку
onClick="window.open('http://ya.ru');
отрывается новое окно, которое становится активным.
Как сделать что бы новое окно не было активном, открывалось "под сайтом", и пользователь остался на изначальной странице, пока сам не переключится на открытую страницу.
Пробовал следующий код:
Код |
Но новому окну также продолжает передаваться фокус.
Репутация: нет
Всего: 38
Репутация: 15
Всего: 315
там ещё много параметров:
pu = window.open(url, 'secondName', 'width=500px;height=500px;scrollbars=yes');
и так далее. а вот чтобы оно всплывало на заднем плане.
Репутация: нет
Всего: нет
Пробовал использовать alwaysRised z-lock не помогло
pu = window.open(url, 'secondName', 'width=500px;height=500px;scrollbars=yes;alwaysRised;z-lock');
Как еще можно вернуть фокус изначальному окну или запретить передачу фокуса новому окну?
Репутация: 84
Всего: 386
Код |
script language="JavaScript"> function popunder(url) pu = window.open(""); window.focus(); |
Можно управлять только собственными окошками - с пустым Урлом. Вот такой код в IE показывает свое окно активным в течении таймаута, пока не заменится адрес ведомого окошка. После этого - ведомое окошко становится сверху. А Хрому и FF на window.focus, видимо, вообще наплевать.
Репутация: нет
Всего: 1
есть мысль, только протестую
Репутация: нет
Всего: 1
Репутация: нет
Всего: нет
Благодарю всех за помощь, к сожалению так и не удалось открыть новое окно с сохранением фокус. Исходя из того что во многих браузерах по умолчанию новые окна открываются в новых вкладках, то и за этого вернуть фокус не получает…
Посоветуйте как можно изменить код который предложил ksnk так что бы была задержка перед открытие нового окна, после клика по ссылки, но фокус не передавался как сейчас используя код ksnk.
То есть цель: кликаем по ссылки, а новое окно допустим открывается только через 2с, при этом в течении этих 2с остается фокус на первоначальной странице ?
Репутация: 15
Всего: 315
Код |
function popunder1(x) setTimeout(function(), 2000); return false; > function popunder(url) pu = window.open(""); window.focus(); |
Репутация: 8
Всего: 54
извиняюсь, не до конца прочитал
Репутация: нет
Всего: нет
С 2009 года ничего не изменилось? У меня такая же проблема, нужно, чтобы фокус сохранялся на родительском окне.
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
[ Время генерации скрипта: 0.1228 ] [ Использовано запросов: 21 ] [ GZIP включён ]
Для небольшого приложения я открываю несколько окон / вкладок из своего скрипта. Открывает ли браузер окно или вкладку, конечно, не в моих руках.
Однако я храню ссылки на вновь созданные объекты window и меняю их содержимое «удаленно» из другого окна. Все это происходит под одним и тем же document.domain , так что нет проблем с xss.
Проблема в том, что я не могу надежно focus создать эти окна / вкладки. Поскольку я пишу очень специфическое приложение для клиента, я ориентируюсь только на Firefox как браузер. Один из вариантов, который у меня есть, это, конечно, просто сделать remoteWindow.alert('foobar'); , чтобы вывести это окно / вкладку вперед, но это довольно уродливо, не правда ли.
И там сказано, что у Firefox есть опция, позволяющая фокусироваться на скрипте. Итак, наконец, мой вопрос, что это за вариант? Я искал about:config для "вкладок" и "фокуса", но не нашел ничего связанного.
Единственное решение, которое я вижу, - это заставить всплывающее окно в новом окне, поскольку, кажется, нет способа сфокусировать другую вкладку. Это решение также требует, чтобы вы изменили настройки безопасности Javascript по умолчанию в Tools > Options > Content tab и нажмите кнопку Advanced рядом с флажком Enable Javascript и установите средний флажок, чтобы разрешить фокусировку окон.
Чтобы принудительно использовать окно, а не вкладку, используйте win = window.open("http://www.google.com", "test" ,"modal=yes"); , а затем вызывайте win.focus(); , когда захотите.
РЕДАКТИРОВАТЬ: На самом деле забыл упомянуть тот факт, что это только FF.
Это грязно и некрасиво, так что это только плюс информация: если вы вызываете alert () в любой из открытых вкладок / окон, эта вкладка будет в фокусе.
Вы пробовали в меню Сервис -> Параметры… -> вкладка «Содержимое» -> «Дополнительно» рядом с «Включить JavaScript», чтобы установить флажок «Поднять или опустить Windows»?
Пример того, как установить фокус, можно найти здесь.
Похоже, что работает в IE8 и FF13:
Другой параметр будет about:config/dom.disable_window_flip (ложно), найден .
Расширяя вклад Алекса выше. Вариант использования имеет CMS. Когда владелец сайта входит в CMS, а интерфейс загружается в другую вкладку. Вы даете владельцу сайта ссылку на интерфейс, который перезагружает вкладку CMS и фокусируется на.
Поместите этот javascript на страницы интерфейса (или включите в глобальный файл JS):
Мне нравится размещать ссылку CMS сразу после контента H1. Опять же, это только если они вошли в CMS. В этом случае я указываю на Framed CMS, поэтому он должен знать, что загружать в основной кадр (предназначено для каламбура).
Это сделано для того, чтобы убедиться, что вкладка уникальна, если в моем браузере есть несколько CMS (поддержка нескольких клиентов):
Наконец, на загрузчик кадров в CMS, добавьте это .
. чтобы убедиться, что если пользователь открыл CMS самостоятельно, мы все равно можем работать с ним.
Нет реального способа сделать это по той простой причине, что если бы у сайтов была такая возможность, они бы в конечном итоге использовали ее для автоматической фокусировки рекламы или чего-то еще.
Это можно сделать, но только в Firefox, если пользователь включил его, чего он, скорее всего, не сделает.
Есть ли способ заставить окно браузера всегда быть сверху и в фокусе? Я работаю над проектом, для которого мне нужно, чтобы окно браузера было сверху и в фокусе все время, кроме случаев закрытия окна браузера. Я пробовал несколько вещей через javascript, но безуспешно удерживал окно в фокусе.
Я не пытаюсь сделать это, чтобы быть принудительным для пользователя. Я работаю над проектом по внедрению онлайн-тестирования, и я не хочу, чтобы пользователь мог переключаться, чтобы искать ответы в Интернете.
Вам нужно будет установить приложение Windows на клиентском компьютере, что заставит браузер быть на вершине. Это единственный способ.
Если вы используете IE, вы можете открыть модальное диалоговое окно, которое всегда будет сверху и в фокусе, но только во время сеанса браузера пользователь сможет свободно переключать приложения.
Изменить: Если вы пишете тестовое приложение, вам, честно говоря, лучше просто установить разумный срок для каждого вопроса. пытаться помешать им искать ответы бесполезно. Что, если у них есть две машины рядом? Что делать, если рядом с ними есть приятель, который помогает с ответами. Вы должны будете пойти с системой чести на этом.
Это невозможно, так как фокус на уровне приложения обрабатывается операционной системой Windows.
Вам нужно будет изменить операционную систему для достижения этой функциональности.
Я прокомментировал вопрос, но понял, что это стоит опубликовать в качестве ответа .
Найдите другое решение. Подумайте немного об этом. Если пользователь не смотрит ответы в другом окне / вкладке / браузере, каковы будут побочные эффекты этого? Обнаружьте эти побочные эффекты и оштрафуйте / заблокируйте в этих случаях.
Вы не можете гарантировать, что ваш пользователь не "обманывает". Либо создайте «физические» правила теста таким образом, чтобы минимизировать вероятность «мошенничества», либо создайте сам тест таким образом, чтобы «мошенничество» было менее значимым. Не пытайтесь обойти встроенные средства защиты пользователей в браузерах, которые запрещают пользователям работать с их браузером, как в любом другом приложении.
Окно браузера принадлежит браузеру, а не вам. Не облажайся с этим.
Не делайте этого, если только вы не написали браузер.
Однажды мне понадобилось 15 минут, чтобы создать разумный веб-браузер с помощью элемента управления Windows Forms WebBrowser. Я предлагаю вам попросить студентов просматривать ваш сайт через эту пользовательскую браузерную программу. Так как эта программа действительно будет вашей, вы можете заставить ее остаться на вершине, или что угодно еще.
JavaScript имеет возможности сделать это, но он отключен по умолчанию в большинстве современных веб-браузеров (и, как вы наверняка согласитесь, для этого была веская причина!)
При открытии нового окна Internet Explorer создается новый сеанс браузера. Поэтому вы можете войти в систему с двумя разными учетными записями на одном и том же сервисе (например, Gmail) То же самое не относится к открытию новой вкладки в том же окне в Internet Explorer.
Как получить новый сеанс браузера при открытии новой вкладки или окна в Firefox?
Как насчет Google Chrome?
В Chrome вы можете использовать приватный просмотр, чтобы добиться того же.
Chrome - гаечный ключ (инструменты) меню / открыть новое окно без истории
В Firefox вы можете использовать расширение вкладки IE, и для достижения того же эффекта вы можете создать еще одну вкладку с движком IE.
Начиная с Firefox 57 AKA Firefox Quantum расширение Firefox Multi-Account Containers (разработанное Mozilla) позволит вам использовать несколько учетных записей на одном веб-сайте с разными учетными записями для каждой вкладки или окна.
- Войдите в две разные учетные записи на одном сайте (например, вы можете войти в рабочую и домашнюю электронную почту на двух разных вкладках «Контейнер»).
- Держите различные виды просмотра подальше друг от друга (например, вы можете использовать одну вкладку «Контейнер» для управления своей учетной записью и другую вкладку «Контейнер» для поиска новых песен по вашей любимой группе)
- Старайтесь не оставлять следы в социальных сетях по всему Интернету (например, вы можете использовать вкладку «Контейнер» для входа в социальную сеть и использовать другую вкладку для посещения новостных сайтов в Интернете, отделяя свою социальную идентичность от сценариев отслеживания на новостных сайтах). )
Версии Firefox до 57 могут использовать:
Multifox - это расширение, которое позволяет Firefox подключаться к веб-сайтам с разными именами пользователей. Одновременно!
Например, если у вас есть несколько учетных записей Gmail, вы можете открыть их все одновременно. Каждое окно Firefox, управляемое Multifox, получает доступ к учетной записи, не мешая друг другу
Каждое окно Multifox помечено номером, обозначающим профиль личности. Логины, сделанные в окнах с разными номерами, изолированы.
Логины сохраняются так же, как и в «обычных» окнах. Даже если вы закроете окно или выйдите из Firefox.
Профиль идентичности каждого окна сохраняется, когда Firefox восстанавливает сеанс.
Он также может легко переключаться между профилями:
Читайте также: