NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name PTP @-Tack // @namespace http://tampermonkey.net/ // @version 0.1.3 // @description Add an @-link to each user's avatar in the forum. // @author HJ-OTMOP // @license MIT // @match https://passthepopcorn.me/* // @exclude https://passthepopcorn.me/*threadid=13617* // @copyright 2018, HJ-OTMOP (https://openuserjs.org/users/HJ-OTMOP) // ==/UserScript== // Changelog 0.1.3 - Fixed error on mislabelling a property as a function // Changelog 0.1.2 - Revised the @ links from hrefs to the user page to username text to integrate with PTP's notification feature // Remove the exclude line above if you're not running the HJ Admin Toolkit (function() { 'use strict'; var elements = document.querySelectorAll('.forum-post__heading a.username'); for (let index = 0; index < elements.length; index++) { var userLink = elements[index].textContent; var ancestor = findAncestor(elements[index], 'forum-post'); var image = ancestor.querySelector('.forum-post__avatar img'); image.setAttribute('title', 'Reply to User'); image.setAttribute('href', userLink); addListener(image); } })(); function addListener(image) { image.addEventListener("click", function(event){ var target = event.target || event.srcElement; insertQuickpostText("@" + target.getAttribute('href') + " – "); }); } function findAncestor (el, cls) { while ((el = el.parentElement) && !el.classList.contains(cls)); return el; } function insertQuickpostText(insert) { var qp = document.getElementById("quickpost"); var caretPos = qp.selectionStart; var caretEnd = qp.selectionEnd; var textAreaTxt = qp.value; qp.value = (textAreaTxt.substring(0, caretPos) + insert + textAreaTxt.substring( caretEnd ) ); qp.focus(); document.getElementById('quickpost').selectionStart = caretPos + insert.length; document.getElementById('quickpost').selectionEnd = caretPos + insert.length; }