Браузеры, как правило, обрабатывают событие popstate по-разному при загрузке страницы.
Chrome и Safari всегда выдают событие popstate при загрузке страницы, но
Firefox нет.
Эта цитата была взята из документации Mozilla: https://developer.mozilla.org/en-US/docs/DOM/window.onpopstate
Я склонен согласиться с системой Mozilla. Загрузка страницы не является действием, требующим запуска дополнительного события popstate, поскольку состояние не передается, оно загружается впервые.
Я предполагаю, что Webkit делает это для удобства ... во всех моих реализациях всегда неудобно откладывать загрузку моего обработчика до тех пор, пока не будет запущено исходное состояние.
Вместо этого (с использованием псевдо-функций):
AddEventHandler(window, 'popstate', OnPopState);
Я должен сделать что-то вроде этого:
AddLoadEvent(window.setTimeout(function()
{
AddEventHandler(window, 'popstate', OnPopState);
},0));