Мне нужно открыть новое окно в фоновом режиме с помощью JavaScript и убедиться, что оригинал все еще сфокусирован
У меня есть окно, которое открывается с помощью функции Javascript:
function newwindow()
{
window.open('link.html','','width=,height=,resizable=no');
}
Мне нужно, чтобы после открытия нового окна фокус вернется в исходное окно.
Как я могу это сделать?
И где я помещаю код - в новое окно или в старое?
Спасибо!
Ответы
Ответ 1
Это называется "pop-under" (и, как правило, на него нахмурился... но я отвлекся). Он должен дать вам много информации о
Вероятно, вы хотите сделать что-то вроде:
var popup = window.open(...);
popup.blur();
window.focus();
Который должен установить фокус обратно в исходное окно (непроверенный - ущемленный из google). Некоторые браузеры могут блокировать эту технику.
Ответ 2
После вызова window.open вы можете попытаться использовать
window.resizeTo(0,0);
window.moveTo(0,window.screen.availHeight+10);
этот способ не может действительно открыть окно в фоновом режиме, но работает аналогичным образом. Chrome работает отлично, не пробовал другой браузер.
Ответ 3
Вы можете использовать либо
"размытие" или
"фокус" для выполнения необходимых действий.
"Размытие"
function newwindow()
{
var myChild= window.open('link.html','','width=,height=,resizable=no');
myChild.blur();
}
"фокус"
function newwindow()
{
window.open('link.html','','width=,height=,resizable=no');
window.focus();
}
Поместите код в свой родительский указатель (т.е. окно, в котором вы сейчас находитесь)
Оба будут работать.
Ответ 4
Если решение Альберта не работает для вас, и вы действительно хотите, чтобы окно было видимым, но которое нужно открыть за текущим окном, вы можете попробовать открыть новую вкладку в открывающемся окне и сразу же закрыв его, это вернет фокус обратно в открывающееся окно.
window.open('link.html','','width=,height=,resizable=no');
window.open().close();
Однако, я считаю, будет ли второе окно открываться на вкладке или новое окно зависит от настроек вашего браузера.
Пожалуйста, не используйте "pop-unders" для зла.