Если поискать подобные решения, то большинство упирается в поиск строки "not found" и/или "404".
Я бы предпочёл бы вариант с повторным запросом.
Для какого-то конкретного сайта указываем
// include http://site.com/*
Для обработки всех 404 страниц
// include *
Ещё важно указать
// @run-at document-start
Код// ==UserScript==
// @name page404handler
// @namespace page404handler
// @version 0.0.1
// @include *
// @grant none
// @run-at document-start
// ==/UserScript==
var url = document.location.href;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status === 404) {
console.log('Page not found');
// do something
}
}
xhr.open('GET', url, true);
xhr.send();