пытаясь открыть существующее окно из разных окон - PullRequest
1 голос
/ 07 октября 2019

Я пытаюсь открыть существующее окно из разных окон

Например,

Внутри первого окна я открываю первую страницу, и на этой странице у меня есть кнопкапосле нажатия этой кнопки я открываю другое окно с именем «Connect», используя следующий код

   var connectWin = window.open("url to Connect page","Connect", "status=no,toolbar=no,menubar=no,location=no,directories=no,top=0,left=900,width=800,height=750");
   connectWin.name="Connect";

Теперь, в том же окне, я перехожу на другую страницу (в пределах одного домена) ина этой странице у меня есть еще одна кнопка, и после нажатия я проверяю, открыто ли окно подключения, или нет, если да, то я открываю существующее окно, в противном случае возникает ошибка

// code to take reference of an existing connect window
 var connectWnd = window.open('', 'Connect');


if( jQuery.type(connectWnd) === "undefined" || connectWnd.location.href === 'about:blank' ){         


    connectWnd.close();        
    $("#errorMessage").text("Connect page is not opened yet");


}else{

    //if connect is already open then post a message to that window
    connectWnd.postMessage(data);

}

Проблема, с которой я сталкиваюсьесли пользователь откроет другую страницу в другом окне, чем я всегда получаю Connect Page is not opened yet ошибка.

Кажется, что когда пользователь пытается получить доступ к странице из другого окна, т.е. из второго окна, в этом случае window.open('', 'Connect'); завершается неудачно. Так есть ли способ открыть существующее окно из любого окна в браузере.

1 Ответ

2 голосов
/ 07 октября 2019

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

Лучшим решением для охвата всех крайних случаев может быть разработка расширения для браузера и синхронизация действий с сервером для регистрации открытых вкладок (но даже в этом случае вы не можете перенаправитьего в окно в другом браузере!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...