// ==UserScript== // @name JV-stickers // @namespace http://tampermonkey.net/ // @version 0.2 // @description Banque de stickers // @author 9sur10 // @match https://www.jeuxvideo.com/forums/* // @icon https://www.google.com/s2/favicons?sz=64&domain=jeuxvideo.com // @grant none // ==/UserScript== //v0.2: fixed js resetting (function() { 'use strict'; function l(e, t, n) { var o = t , i = n || o; if (e.setSelectionRange) e.focus(), e.setSelectionRange(o, i); else if (e.createTextRange) { var r = e.createTextRange(); r.collapse(!0), r.moveEnd("character", i), r.moveStart("character", o), r.select() } } function insertText(e, t) { var n = document.querySelector("#message_topic"); if (false) "" === n.getSelection() ? n.replaceRange(e, n.getCursor()) : n.replaceSelection(e), n.focus(); else { var i, r; if (document.selection) n.focus(), document.selection.createRange().text = e, n.focus(); else if (n.selectionStart || "0" === n.selectionStart || 0 === n.selectionStart) { i = n.selectionStart, r = n.selectionEnd, n.value = n.value.substring(0, i) + e + n.value.substring(r, n.value.length), n.focus(); var s = 0 === t && i - r == 0 ? e.length : t; l(n, i + s, r + s) } else n.value += e, n.focus(); // o(n).trigger("change") } } let toolbar = document.querySelector(".jv-editor-toolbar") let imgBtnGroup = toolbar.querySelectorAll(".btn-group")[2] //btns = imgBtnGroup.querySelectorAll("button") let stickersBtn = document.createElement("button") stickersBtn.classList.add("btn") stickersBtn.classList.add("btn-jv-editor-toolbar") stickersBtn.setAttribute("onclick", "document.getElementById('jv-stickers').style.display='grid';document.getElementById('jv-stickers').classList.add('active');") stickersBtn.setAttribute("type", "button") stickersBtn.setAttribute("title", "Stickers") stickersBtn.innerHTML = "" imgBtnGroup.appendChild(stickersBtn) let body = document.querySelector("body") let modalDiv = document.createElement("div") modalDiv.innerHTML = `
` body.appendChild(modalDiv) document.querySelectorAll("#jv-stickers img").forEach(elem=>{ elem.style.cursor = "pointer" elem.onclick = () => { insertText(elem.getAttribute("data-code")) document.getElementById('jv-stickers').style.display='none';document.getElementById('jv-stickers').classList.remove('active'); } }) })();