ОК, у меня возникла эта проблема. У меня есть (довольно грязное) решение этой проблемы.
В моем случае я хочу иногда блокировать навигацию, а не другие.
Итак, я устанавливаю флажок в окне, чтобы сказать, хочу ли я заблокировать его. Поэтому, когда вы делаете свой window.open, перед этим выполните «window.allowExit = true», затем в onbeforeunload проверьте для window.allowExit = true.
У меня есть java-скрипт (SHowHelp), который был запущен по ссылке:
<a href="javascript:ShowHelp('argument')" >HERE</a>
onbeforeunload называется ДО ShowHelp, поэтому я использовал onclick для установки флага
<a onclick="window.allowExit = true;" href="javascript:ShowHelp('argument')" >HERE</a>
Гадкий как грех, но, кажется, работает!