Javascript: проверка на наличие дубликатов открытого окна - PullRequest
1 голос
/ 09 января 2011

Можно ли проверить, открылось ли уже то же окно?

Например, я открыл окно с помощью JavaScript.

Могу ли я проверить, открыт ли он на другой странице через javascript?

Просто хочу сосредоточиться на странице, если она уже открыта, чтобы избежать дублирования окон.

Спасибо;)

Ответы [ 3 ]

2 голосов
/ 09 января 2011

Посмотрите на window.open() метод.Вы должны указать имя окна в качестве второго параметра.Если окно с таким именем уже существует, новый URL будет открыт в уже существующем окне, см. http://www.w3schools.com/jsref/met_win_open.asp

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

var myOpenedWindow = myOpenedWindow || window.open(URL, "MyNewWindow");

. Вы также можете инкапсулировать это поведение в методе:

var myOpenWindow = function(URL) {
    var myOpenedWindow = myOpenedWindow || window.open(URL, "MyNewWindow");
    myOpenedWindow.location.href= URL;
    myOpenedWindow.focus();
}

И вызвать эту функцию с myOpenWindow('http://www.example.com/');

1 голос
/ 09 января 2011

Если у вас есть родительско-дочернее окно, то здесь есть решение, которое позволит вам проверить, открыто ли дочернее окно от родительского окна, которое его запустило.Это сделает фокус на дочернее окно без перезагрузки его данных:

 <script type="text/javascript">
    var popWin;
    function popPage(url)
    {
       if (popWin &! popWin.closed && popWin.focus){
           popWin.focus();
       } else {
          popWin = window.open(url,'','width=800,height=600');
      }
    }
</script>

    <a href="http://www.xzy.com"
onclick="popPage(this.href);return false;">link</a>

еще одна вещь :: --- Если пользователь обновит родительское окно, он может потерять все свои ссылки на любые дочерние окна, которые онвозможно, был открыт.

Надеюсь, это поможет, и дайте мне знать результат.

0 голосов
/ 05 сентября 2013

Это поможет, если вы хотите открыть ссылку по ссылке

 var Win=null;
function newTab(url){
//var Win; // this will hold our opened window

// first check to see if the window already exists
if (Win != null) {
// the window has already been created, but did the user close it?
// if so, then reopen it. Otherwise make it the active window.
if (!Win.closed) {
  Win.close();
//   return winObj;
}

 // otherwise fall through to the code below to re-open the window
 } 

 // if we get here, then the window hasn't been created yet, or it
 // was closed by the user.
 Win = window.open(url);

 return Win; 

 }
 newTab('index.html');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...