NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name imgflip_saver // @version 1.1 // @description Free ImgFlip Meme Generator Saves // @author AceSilentKill // @license ISC // @match *://imgflip.com/memegenerator // @icon https://imgflip.com/favicon.ico?b // @updateURL https://openuserjs.org/meta/AceSilentkill/imgflip_saver.meta.js // @downloadURL https://openuserjs.org/install/AceSilentkill/imgflip_saver.user.js // @grant unsafeWindow // @run-at document-start // ==/UserScript== unsafeWindow.addEventListener('load', function () { const replaceNode = (e, n) => { if (n) e.parentNode.replaceChild(e.cloneNode(!0), e); else { for (var a = e.cloneNode(!1); e.hasChildNodes();) a.appendChild(e.firstChild); e.parentNode.replaceChild(a, e) } }, gB = () => document.querySelector("#mm-settings > div.gen-wrap > div.gen-wrap-btns.clearfix > button.mm-generate.b.but"), canvas = document.querySelector("#mm-preview-outer > div.mm-preview > canvas"), nSB = (e, n) => { Object.assign(document.createElement("a"), { style: "display:none!important;", href: window.URL.createObjectURL(e), download: n }).click() }; replaceNode(gB()), Object.assign(gB(), { innerText: "Free Download <3", onclick: () => { canvas.toBlob((e => { nSB(e, `meme-${canvas.width}x${canvas.height}.png`) })) } }); });