Насколько я знаю, в JavaScript невозможно отловить нажатие кнопки X (закрыть) в любом браузере. По моему мнению, это связано с соображениями безопасности ... JavaScript не может (и никогда не сможет) прослушивать сообщения ОС, такие как закрытие текущего окна.
Единственное известное мне решение (которое вы, похоже, используете):
<body onunload="alert('Fired');">
Но, как вы узнаете, срабатывает ли при закрытии и при перезагрузке. Опять же, это нормальное поведение, потому что, AFAIK, для движка JS перезагрузка такая же, как закрытие, а затем повторное открытие той же страницы.