Проблема JavaScript с несколькими всплывающими окнами - PullRequest
0 голосов
/ 07 сентября 2011

Я пытаюсь открыть новое всплывающее окно для моего приложения.И у каждого всплывающего окна есть имя окна.Предположим, что если пользователь закрывает всплывающее окно, он может открыть всплывающее окно с тем же именем. Также должно отображаться существующее всплывающее окно.

Я написал код ниже, чтобы сделать это.Но это не открывает всплывающее окно, если пользователь закрывает его, иначе оно открывает новое всплывающее окно.Подскажите пожалуйста как можно с этим справиться.

d='javascript:if(document.getElementsByTagName("*").length>0&&document.getElementsByTagName("body")[0].innerHTML!=""&&!confirm("You are about to navigate to home page Do you want to do that ? "))
{opener.display2WindowHelp();}
else
{window.location.replace("${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}'+d+'");
}';
b= window.open(d,"_spor_window_"+a+window.location.hostname.replace(/\./g,""),"menubar=no,scrollbars=yes,height="+screen.availHeight+",width="+screen.availWidth+",left=0,top=0,resizable=yes,toolbar=no,location=no,status=no");

1 Ответ

0 голосов
/ 07 сентября 2011

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

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

var popWin;

function openWindow(url) {
  var windowName = '...';
  var features = '...';

  if (!popWin || popWin.closed) {
    popWin = window.open(url, windowName, features);

  } else {
    popWin.location.href = url;
  }
}

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

Может оказаться полезным окно HTML5 (создание контекстов по названию и навигация по ним) и MDN window.open документация.

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