Вход

Просмотр полной версии : Получение фокуса новым окном


alex870
13.08.2016, 22:51
Здравствуйте, форумчане!
Помогите пожалуйста разобраться в ситуации. Задача стоит: при нажатии на кнопку открыть в новом окне браузера инструкцию по использованию инструментов сайта. Задумка в том, чтобы пользователь открывал страницы с инструментами и при этом "подглядывал" в инструкцию, ну типа куда жать и как что заполнять.
Для этого написан скрипт:

function showdoc(val,rus)
{
var width = parseInt(screen.availWidth-100);
var height = parseInt(screen.availHeight-200);
var left = parseInt(Math.round(screen.availWidth/2-width/2));
var top = parseInt(Math.round(screen.availHeight/2-height/2));

surl = '../docs/'+val+'.pdf';
window.status=rus; /*статусная строка главного окна*/
strfeatures="top="+top+",left="+left+", width="+width+", height="+height+",scrollbars=yes";
var newWindow = window.open(surl,"newwin", strfeatures);
if (newWindow) newWindow.focus();
}

Скрипт отображает новое окно с инструкцией. Для того, чтобы эти окна не плодить я все инструкции открываю в том же окне. Получается, что если пользователь хочет открыть новую инструкцию не закрыв окно - она открывается в нем, но окно не получает фокус, по крайней мере в IE11 выскакивает ошибка на строке newWindow.focus() "Член группы не найден". В ФФ и Хроме всё работает нормально. В чем может быть проблема?
Спасибо.

warren buffet
14.08.2016, 06:41
Не надо делать попапы. Ну или читай про фокус http://stackoverflow.com/questions/9008835/bring-popup-to-front

alex870
14.08.2016, 14:40
Почему не надо? Это же не рекламная хрень. В моем случае (описанном в первом посте) это очень даже оправданно, я бы даже сказал, что это самый удобный для пользователя вариант.
За ссылку спасибо, но там ничего нового. По сути там такой же код. Но в IE11 этот код не работает. В FF и GC всё работает корректно, но в IE вызов метода focus возвращает указанную ошибку. Мне бы как раз вот с этим разобраться...

warren buffet
15.08.2016, 11:38
Да мне пофигу, делай как в 90е, но помни о некоторых моментах:

Браузер не знает рекламная это хрень или не хрень. Если у пользователя попапы заблокированы, а заблокированы они небось у всех по умолчанию, то едва ли он вообще увидит какую-то пользу. Кроме того окно может открыться во вкладке или вообще не открыться у тех, у кого нет окон (у мобильных). Но даже если оно откроется, никто его закрывать не станет, ибо народ тотально работает в распахнутом окне, то есть считай без окон, отчего у тебя геморрой. Нарисуй с тем же хтмл и теми же методами в сущности - т.н. модальное окно и не мучай людей и сам не мучайся.

warren buffet
15.08.2016, 12:25
Вот смотри картинку, прямо на этом сайте

Причем если постараться, то можно заблокировать и открытие окна загрузки файлов.