Greasy Fork is available in English.
Replace time format and add share button to each answer
Pada tanggal
- // ==UserScript==
- // @name Better Stack Overflow
- // @namespace http://tampermonkey.net/
- // @version 1.4
- // @description Replace time format and add share button to each answer
- // @author Landon Li
- // @match *://stackoverflow.com/questions/*
- // @match *://*.stackexchange.com/questions/*
- // @match *://superuser.com/questions/*
- // @match *://askubuntu.com/questions/*
- // @icon https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico
- // @grant none
- // ==/UserScript==
- (function () {
- 'use strict';
- function htmlToElement(html) {
- var template = document.createElement('template');
- html = html.trim(); // Never return a text node of whitespace as the result
- template.innerHTML = html;
- return template.content.firstChild;
- }
- console.log('Replacing time format...');
- var timeSpans = document.evaluate('//div[@class="user-action-time"]//span', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
- for (var i = 0; i < timeSpans.snapshotLength; i++) {
- var timeSpan = timeSpans.snapshotItem(i);
- timeSpan.innerText = timeSpan.title;
- }
- console.log('Adding share buttons...');
- var answerDivs = document.evaluate('//div[@id="answers"]/div[contains(@id, "answer-")]', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
- for (var j = 0; j < answerDivs.snapshotLength; j++) {
- var answerDiv = answerDivs.snapshotItem(j);
- var answerID = document.evaluate('./@id', answerDiv, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.value;
- var actionDiv = document.evaluate('./div[1]/div[1]/div[1]', answerDiv, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
- var shareLink = window.location.href.split('#')[0] + '#' + answerID;
- var shareDiv = htmlToElement('<div class="py6 mx-auto"><a href="#' + answerID + '" onclick="navigator.clipboard.writeText(\'' + shareLink + '\')">🔗</a></div>');
- actionDiv.appendChild(shareDiv);
- }
- })();