// ==UserScript== // @name Facebook All Comments Helper // @name:zh-TW FB全部留言小幫手 // @name:zh-CN FB全部留言小帮手 // @namespace http://tampermonkey.net/ // @version 1.7 // @description Easy way to show all comments. // @description:zh-tw 讓您更快打開全部留言 // @description:zh-cn 让您更快打开全部留言 // @author Xuitty // @match https://www.facebook.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=facebook.com // @grant none // @license MIT // @downloadURL none // ==/UserScript== const langs = { de: ["Relevanteste", "Top-Kommentare", "Am zutreffendsten", "Neueste zuerst", "Neueste", "Alle Kommentare"], en: ["Top comments", "Most relevant", "Most applicable", "Most recent", "Newest", "All comments"], es: ["Comentarios destacados", "Más relevantes", "Más pertinentes", "Más recientes", "Más recientes", "Todos los comentarios"], hu: ["A legfontosabb hozzászólások", "A legrelevánsabbak", "A témához leginkább illők", "A legújabbak", "A legutóbbiak", "Az összes hozzászólás"], ja: ["トップコメント", "関連度の高い順", "最も適切", "新しい順", "新しい順", "すべてのコメント"], ko: ["관련성 높은 댓글", "참여도 높은 댓글", "적합성 높은 순", "최신순", "날짜 내림차순", "모든 댓글"], fr: ["Plus pertinents", "Les meilleurs commentaires", "Les plus pertinents", "Plus récents", "Les plus récents", "Tous les commentaires"], sk: ["Top komentáre", "Najrelevantnejšie", "Najvhodnejšie", "Najnovšie", "Najnovšie", "Všetky komentáre"], sl: ["Najbolj priljubljeni komentarji", "Najustreznejši", "Najustreznejše", "Najnovejši", "Najnovejši", "Vsi komentarji"], "zh-Hans": ["热门评论", "最相关", "最合适", "从新到旧", "最新", "所有评论"], "zh-Hant": ["最熱門留言", "最相關", "最相關", "最新", "由新到舊", "所有留言"], }; function execute(e) { if (e.code !== "Insert" && e.type === "keydown") return; let flag = e.ctrlKey ? true : false; let fblang = document.getElementById("facebook").getAttribute("lang"); let lang = langs[fblang] || langs.en; let headings = document.evaluate( "//span[text()='" + lang[0] + "' or text()='" + lang[1] + "' or text()='" + lang[2] + "' or text()='" + lang[3] + "' or text()='" + lang[4] + "' or text()='" + lang[5] + "']", document, null, XPathResult.ANY_TYPE, null ); if (flag) showLatestComment(headings); else showAllComment(headings); } function showAllComment(headings) { let node1; while ((node1 = headings.iterateNext())) { node1.click(); setTimeout(() => { document.querySelectorAll('*[role="menuitem"]')[document.querySelectorAll('*[role="menuitem"]').length - 1].click(); }, 100); } } function showLatestComment(headings) { let node1; while ((node1 = headings.iterateNext())) { node1.click(); setTimeout(() => { document.querySelectorAll('*[role="menuitem"]')[document.querySelectorAll('*[role="menuitem"]').length - 2].click(); }, 100); } } (function () { "use strict"; document.addEventListener("dblclick", execute); document.addEventListener("keydown", execute); })();