NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
(function () {
"use strict"
// ==UserScript==
// @name uso - Cancellable Editor
// @namespace http://userscripts.org/users/37004
// @description Allows cancelling of the reply editor while viewing on or offline with site JavaScript disabled
// @copyright 2009+, Marti Martz (http://userscripts.org/users/37004)
// @license CC-BY-NC-SA-4.0; https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
// @license GPL-3.0-or-later; http://www.gnu.org/licenses/gpl-3.0.txt
// @version 0.2.4.1eol
// @icon https://raw.githubusercontent.com/Martii/UserScripts/master/src/uso/Cancellable%20Editor/res/icon48.png
// @homepageURL https://github.com/Martii/UserScripts/tree/master/src/uso/Cancellable%20Editor
// @homepageURL https://openuserjs.org/scripts/Marti/uso_-_Cancellable_Editor
// @homepageURL http://userscripts.org/scripts/show/48200
// @supportURL http://userscripts.org/topics/26204
// @include /^https?://userscripts\.org(?::\d{1,5})?/topics//
// @include http://userscripts.org:8080/topics/*
// @include http://userscripts.org/topics/*
// @include https://userscripts.org/topics/*
// ==/UserScript==
/**
* NOTE: This script uses object existence tests on the wrappedJSObject, but NEVER CALLS those objects
*/
function cancelReply(aEv) {
aEv.preventDefault();
let xpr = document.evaluate(
"//div[@id='reply']",
document.body,
null,
XPathResult.FIRST_ORDERED_NODE_TYPE,
null
);
if (xpr && xpr.singleNodeValue) {
let thisNode = xpr.singleNodeValue;
thisNode.style.setProperty("display", "none", "");
}
}
if (typeof window.wrappedJSObject == "object" && typeof window.wrappedJSObject.jQuery == "function")
return;
let xpr = document.evaluate(
'//a[starts-with(@onclick,"$(\'#reply\').hide();")]',
document.body,
null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null
);
if (xpr)
for (let i = 0, thisNode; thisNode = xpr.snapshotItem(i++);) {
thisNode.removeAttribute("onclick");
thisNode.addEventListener("click", cancelReply, false);
}
})();