diff --git a/assets/js/page_image_detail.js b/assets/js/page_image_detail.js
index 39e1d01477dfe52e313dd0f8486f122b81f1ed20..62f969baf1affe18849c99f6e62612d381f6e718 100644
--- a/assets/js/page_image_detail.js
+++ b/assets/js/page_image_detail.js
@@ -79,9 +79,11 @@ save.addEventListener("click", (e) => {
     doSave();
 });
 
-window.onbeforeunload = () => {
+window.addEventListener("beforeunload", (e) => {
     const state = currentState();
     if (lastSaved !== null && lastSaved !== state) {
-        return "Your changes have not been saved. Are you sure you want to leave?"
+        const message = "Your changes have not been saved. Are you sure you want to leave?";
+        e.returnValue = message;
+        return message;
     }
 };
\ No newline at end of file