// ==UserScript==
// @name Neopets - Remove Buy Confirm Onclick
// @namespace https://www.scriptneo.com/
// @version 1.0
// @description Removes the inline confirm onclick from shop buy buttons so it doesn't prompt "Are you sure you wish to buy..."
// @author You
// @match https://www.neopets.com/*
// @grant none
// @downloadURL https://www.scriptneo.com/scripts/download.php?id=1
// @updateURL https://www.scriptneo.com/scripts/download.php?id=1
// ==/UserScript==
(function () {
"use strict";
function stripInlineConfirm(el) {
if (!el || !(el instanceof Element)) return false;
// Remove inline attribute like: onclick="if (!confirm(...)) { return false; }"
const attr = el.getAttribute("onclick");
if (attr && /confirm\s*\(/i.test(attr)) {
el.removeAttribute("onclick");
}
// Also remove property handler if it exists and looks confirm-ish
// (Some pages set el.onclick = function(){...confirm...})
try {
const prop = el.onclick;
if (typeof prop === "function") {
const src = Function.prototype.toString.call(prop);
if (/confirm\s*\(/i.test(src)) {
el.onclick = null;
}
}
} catch (e) {
// ignore
}
return true;
}
function scan() {
// Buttons / inputs commonly used for "Buy"
const candidates = document.querySelectorAll(
'input[type="submit"][onclick], input[type="button"][onclick], button[onclick], a[onclick]'
);
candidates.forEach((el) => stripInlineConfirm(el));
}
// Initial pass
scan();
// Keep it clean if the page swaps content dynamically
const obs = new MutationObserver(() => scan());
obs.observe(document.documentElement, { childList: true, subtree: true });
})();