Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Получение фокуса новым окном (https://javascript.ru/forum/events/64473-poluchenie-fokusa-novym-oknom.html)

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/9...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

Вложений: 1
Вот смотри картинку, прямо на этом сайте

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


Часовой пояс GMT +3, время: 10:39.