AjaxDelete allows you to delete and undelete pages without leaving the page you're on, by showing a deletion modal when you click on any delete or undelete link.

Note: The modal won't open if you're holding either the shift or control key. This is to allow users to access the delete and undelete pages normally.


Add this JavaScript on your wiki:

importArticles — Best Practices for installing JavaScript on FANDOM
The importArticles statement is designed to combine multiple HTTP requests into a single data transfer, allowing multiple scripts to load and execute faster. If you've been installing several different scripts, your JavaScript file has probably accumulated unnecessary import statements. Click "Expand" to learn how to efficiently batch import scripts to speed up performance and make your code look cleaner. One other approach is by using the MediaWiki:ImportJS.
If your JavaScript file has several lines of code that say importScript, importScriptPage, or importArticles, you may be able to combine them! By batch importing a collection of scripts with a single import, your JavaScript code will load faster and look cleaner. Consider the example below. On the left is an example of what your JavaScript file might currently look like. On the right is how you could improve that code.
Multiple imports — messy and slow One import — clean and efficient
  type: 'script',
  article: 'u:dev:FloatingToc/code.js'
importScriptPage('page1.js', 'wikiname');
importScriptPage('page2.js', 'wikiname');
    type: 'script',
    articles: [
Note: In this example, pay close attention to the placement of commas and other punctuation. For people who aren't familiar with programming (and even those who are!), a common mistake when writing code is to accidentally delete, forget, or misplace critical symbols like commas or quotation marks. This can cause a syntax error that breaks the code. Carefully follow the convention shown here when using importArticles.
But there's much more to importArticles than just this! For more examples and advanced usage, see the help page at Help:Including additional JavaScript and CSS.


The delete modal will show up when you click on any ?action=delete link, using it is pretty self-explanatory. Select one of the generic delete/undelete reasons or type your own on the input. You can specify the reason further if you choose a common reason and input your own at the same time, which would appear as: <common reason>: <further ellaboration>. Check the "Watch this page" box if you wish to follow the article and then click "Delete" to delete it, or "Cancel" to close the modal.

When undeleting, a modal will pop up prompting you to input a reason. Clicking "Restore" will undelete the page, and "Cancel" will close the modal.


All custom variables are under the window.AjaxDelete object.

To set custom delete reasons, you just need to add to the window.AjaxDelete.deleteReasons object in the syntax: 'time to submit': 'time to display',. And to set custom reasons for images, add to the window.AjaxDelete.imageDeleteReasons object in the same syntax.

The "Watch this page" checkbox is checked by default. To stop this behavior, set the window.AjaxDelete.autoCheckWatch boolean to false.

The script also provides an AJAX Undelete modal. If you don't wish for this to appear, you can set window.AjaxDelete.noUndelete boolean to true.

Example configuration:

window.AjaxDelete = {
    deleteReasons: {
        '[[w:Help:Vandalism]]': 'Vandalism',
        '[[w:Help:Spam]]': 'Spam',
        'Marked for speedy deletion': 'Speedy',
        'Empty page': 'Empty',
        'Author request': 'Author request',
        'Irrelevant to <insert wiki topic here>': 'Irrelevant',
        'Failed to comply with the [[Project:Manual of Style|manual of style]] for over 6 months': 'MoS'
    imageDeleteReasons: {
        'Offensive': 'Offensive',
        'Innapropiate': 'Innapropiate',
        'Harassment': 'Harassment',
        'Housekeeping/Unused': 'Unused',
        'Copyright infringement': 'Copyright',
        'Author request': 'Author request'
    autoCheckWatch: false,
    noUndelete: true

All default values from the dropdowns are taken from their respective MediaWiki pages (MediaWiki:Deletereason-dropdown and MediaWiki:Filedelete-reason-dropdown).

Text above can be found here (edit)