Index: src/js/_enqueues/admin/post.js
===================================================================
--- src/js/_enqueues/admin/post.js	(revision 49801)
+++ src/js/_enqueues/admin/post.js	(working copy)
@@ -488,12 +488,20 @@
 	 * When the user is trying to load another page, or reloads current page
 	 * show a confirmation dialog when there are unsaved changes.
 	 */
-	$(window).on( 'beforeunload.edit-post', function() {
-		var editor = typeof tinymce !== 'undefined' && tinymce.get('content');
+	$( window ).on( 'beforeunload.edit-post', function( event ) {
+		var editor  = window.tinymce && window.tinymce.get( 'content' );
+		var changed = false;
 
-		if ( ( editor && ! editor.isHidden() && editor.isDirty() ) ||
-			( wp.autosave && wp.autosave.server.postChanged() ) ) {
+		if ( wp.autosave ) {
+			changed = wp.autosave.server.postChanged();
+		} else if ( editor ) {
+			changed = ( ! editor.isHidden() && editor.isDirty() );
+		}
 
+		if ( changed ) {
+			event.preventDefault();
+			// The return string is needed for browser compat.
+			// See https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event.
 			return __( 'The changes you made will be lost if you navigate away from this page.' );
 		}
 	}).on( 'unload.edit-post', function( event ) {
Index: src/js/_enqueues/wp/autosave.js
===================================================================
--- src/js/_enqueues/wp/autosave.js	(revision 49801)
+++ src/js/_enqueues/wp/autosave.js	(working copy)
@@ -36,10 +36,26 @@
 	 */
 	function autosave() {
 		var initialCompareString,
-			lastTriggerSave = 0,
-			$document = $(document);
+			initialCompareData = {},
+			lastTriggerSave    = 0,
+			$document          = $( document );
 
 		/**
+		 * Sets the initial compare data.
+		 *
+		 * @since 5.6.1
+		 */
+		function setInitialCompare() {
+			initialCompareData = {
+				post_title: $( '#title' ).val() || '',
+				content: $( '#content' ).val() || '',
+				excerpt: $( '#excerpt' ).val() || ''
+			};
+
+			initialCompareString = getCompareString( initialCompareData );
+		}
+
+		/**
 		 * Returns the data saved in both local and remote autosave.
 		 *
 		 * @since 3.9.0
@@ -686,6 +702,36 @@
 			 * @return {boolean} True if the post has been changed.
 			 */
 			function postChanged() {
+				var changed = false;
+
+				// If there are TinyMCE instances, loop through them.
+				if ( window.tinymce ) {
+					window.tinymce.each( [ 'content', 'excerpt' ], function( field ) {
+						var editor = window.tinymce.get( field );
+
+						if ( ! editor || editor.isHidden() ) {
+							if ( $( '#' + field ).val() !== initialCompareData[ field ] ) {
+								changed = true;
+								// Break.
+								return false;
+							}
+
+							return;
+						}
+
+						if ( editor.isDirty() ) {
+							changed = true;
+							return false;
+						}
+					} );
+
+					if ( $( '#title' ).val() !== initialCompareData.post_title ) {
+						changed = true;
+					}
+
+					return changed;
+				}
+
 				return getCompareString() !== initialCompareString;
 			}
 
@@ -832,16 +878,16 @@
 		 * @return {void}
 		 */
 		$document.on( 'tinymce-editor-init.autosave', function( event, editor ) {
-			if ( editor.id === 'content' ) {
+			// Reset the initialCompare data after the TinyMCE instances have been initialized.
+			if ( 'content' === editor.id || 'excerpt' === editor.id ) {
 				window.setTimeout( function() {
 					editor.save();
-					initialCompareString = getCompareString();
+					setInitialCompare();
 				}, 1000 );
 			}
 		}).ready( function() {
-
 			// Set the initial compare string in case TinyMCE is not used or not loaded first.
-			initialCompareString = getCompareString();
+			setInitialCompare();
 		});
 
 		return {
