Подтверждено это поведение на хроме 21.0.1180.79
это похоже на те же операции восстановления, что и на XSS, если вы обновляете страницу или открываете страницу в том же домене + порт, на котором выполняется сценарий, в противном случае он будет выполняться только в том случае, если вы возвращаете строку (или аналогичную ) и отобразится диалоговое окно, спрашивающее пользователя, хочет ли он наклониться или остаться на странице.
это невероятно глупая вещь, потому что onunload / onbeforeunload используются не только для запроса / предотвращения изменения страницы.
В моем случае я тоже использовал его, сохранив некоторые изменения, сделанные во время редактирования страницы, и я не хочу препятствовать пользователю изменять страницу (по крайней мере, Chrome должен уважать возвращаемое значение true или изменять страницу без запроса, если возврат не строка), ограничения времени выполнения скрипта будут приняты.
Это особенно раздражает в chrome, потому что событие onblur не отправляется элементам редактирования при выгрузке страницы, chrome просто игнорирует текущую страницу и переходит на другую. Таким образом, единственным изменением сохранения изменений был процесс выгрузки, и теперь это невозможно сделать без вопроса о STUPID, если пользователь хочет изменить его ... конечно, он хочет, а я не хотел этого предотвращать ...
надеюсь, что Chrome решит эту проблему более элегантно.