JavaScript Pop Up Issue - PullRequest
       19

JavaScript Pop Up Issue

0 голосов
/ 11 ноября 2010

Это происходит только в IE (работает в Chrome, Firefox):

При первом нажатии на ссылку открывается всплывающее окно, во второй раз просто перенаправляет меня на страницу.

Когда я обновляю страницу, всплывающее окно работает в первый раз, а затем во второй раз, оно снова перенаправляет.

function popUpWindow(win) {
  myWindow = window.open(win, "popupwin", "height=310,width=570,resizeable=0, menubar=0,toolbar=0,location=0, directories=0,status=0");
}

Вот как я вызываю функцию

 <a href="#" onclick="popUpWindow('/usere.htm'); return false;">User Status</a>

РЕДАКТИРОВАТЬ: я извиняюсь, второй раз, он не перенаправляет, ничего не происходит, когда я нажимаю на ссылку. Это перенаправление.

РЕДАКТИРОВАТЬ: я закрываю всплывающее окно, когда оно открываетсяв первый раз, а затем снова щелкните по всплывающей ссылке.

Я перепробовал все решения, представленные ниже, и обнаружил, что метод JavaScript не вызывается во второй раз, когда я нажимаю на ссылку.

Ответы [ 3 ]

0 голосов
/ 11 ноября 2010

Полагаю, вы хотите обновить окно, которое вы бы сделали следующим образом:

var myWindow = null;
function popUpWindow(win) {
    if (myWindow && !myWindow.closed) {
        myWindow.close();  
    }
    myWindow = window.open(win, name, options);
}
0 голосов
/ 11 ноября 2010

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

var popupIndex = 0;
function popUpWindow(win) {
  myWindow = window.open(win, "popupwin" + popupIndex++, "height=310,width=570,resizeable=0, menubar=0,toolbar=0,location=0, directories=0,status=0");
}
0 голосов
/ 11 ноября 2010

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

var myWindow = null;

function popUpWindow(win) {
  if (!myWindow || myWindow.closed) {
    myWindow = window.open(win, "popupwin", "height=310,width=570,resizeable=0, menubar=0,toolbar=0,location=0, directories=0,status=0");
  } else {
    myWindow.focus();
  }
}

Если вы всегда хотите закрыть существующее всплывающее окно перед открытием нового:

var myWindow = null;

function popUpWindow(win) {
  if (myWindow && !myWindow.closed) {
    myWindow.close();
  }
  myWindow = window.open(win, "popupwin", "height=310,width=570,resizeable=0, menubar=0,toolbar=0,location=0, directories=0,status=0");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...