better cross-browser unsaved changes confirmation