открыть всплывающее окно, когда пользователь закрывает страницу

Мне нужна функция javascript, в которой она открывает всплывающее окно всякий раз, когда пользователь закрывает окно, а затем в фактическом окне мне нужно иметь возможность закрыть ту исходную страницу, которую пользователь пытался закрыть (если пользователь нажимает «Я уверен, что хочу закрыть" или что-то в этом роде)

function openWin()
{
function linkClick(e) {
  alert = false;
}
links = document.getElementsByTagName('a');
for (i = 0; i < links.length; i++)
  links[i].addEventListener('click', linkClick, false);
  if(alert != false){
myWindow=window.open("","","width=200,height=100");
myWindow.document.write("<p>This is 'myWindow'</p>");
}
}

то в теле у меня есть функция выгрузки

<body onUnload="openWin()" >

всплывающее окно работает, но оно появляется и при нажатии на ссылку
есть идеи?


person mmp51d    schedule 07.05.2014    source источник


Ответы (1)


Это непроверенный код, но он должен работать:

<!-- end of site or in onReady -->
<script>
var lnk = false;

links = document.getElementsByTagName('a');
for (i = 0; i < links.length; i++)
  links[i].addEventListener('click', linkClick, false);
}

function linkClick() { lnk = true; }
function openWin()
{
  if(!lnk){
    myWindow=window.open("","","width=200,height=100");
    myWindow.document.write("<p>This is 'myWindow'</p>");
  }
}
</script>

Отличие в том, что переменная lnk и функция linkClick теперь находятся в глобальной области видимости. onclick должно срабатывать до onunload, так как событие onclick обычно отменяется.

person Sebb    schedule 07.05.2014