WordPress.org

Making WordPress.org

Opened 5 years ago

Last modified 2 months ago

#155 new enhancement

Confirm page close when writing on WordPress.org forums

Reported by: Daedalon Owned by:
Milestone: Priority: normal
Component: Support Forums Keywords: needs-patch
Cc:

Description

Migrating from #wp24145:

When writing on WordPress.org forums, sometimes long and well thought-out replies are lost due to accidental page closing. This causes countless amounts of work lost within the WordPress community.

There should be a confirmation dialog to prevent accidental page closing after user has entered something in the new post form.

Comments in #wp24145 have a jQuery-based solution if we want to use it.

Change History (3)

#1 @Daedalon
5 years ago

  • Keywords has-patch dev-feedback added

Here's an improved solution based on the earlier one in #wp24145 and comments in Stack Overflow. Uses addEventListener to avoid overriding other listeners and includes a workaround for clients that don't support it.

if( $('#postform').length ){
    requireConfirmClose = false;
    $('#postform input[type=text], #postform select, #postform textarea').change( function(){
    	requireConfirmClose = true;
    });
    $('input#postformsub').click( function(){
        requireConfirmClose = false;
    });
    // Workaround for browsers without addEventListener support
    if (typeof window.addEventListener === 'undefined') {
        window.addEventListener = function(e, callback) {
            return window.attachEvent('on' + e, callback);
        }
    }
    window.addEventListener('beforeunload', function(eventObject) {
        if ( requireConfirmClose ) {
            eventObject.returnValue = 'Are you sure you want to close this page? All changes will be lost.';
        }
    });
}

This ticket was mentioned in Slack in #forums by clorith. View the logs.


2 months ago

#3 @Clorith
2 months ago

  • Keywords needs-patch added; has-patch dev-feedback removed
  • Priority changed from lowest to normal

Definitely a feature that would improve UX, and is fairly simple to implement. We are likely losing out on topics from users who can't be bothered re-typing after accidentally leaving.

Note: See TracTickets for help on using tickets.