您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Lägger till en knapp som läser in kommande inlägg utan uppdatering av sidan.
当前为
- // ==UserScript==
- // @name SweClockers JavaScript sidladdare
- // @namespace hAPsdWxok4bTePK8JZdG
- // @author LemonIllusion
- // @version 1.1.1
- // @match http://www.sweclockers.com/forum/trad/*
- // @match http://www.sweclockers.com/forum/post/*
- // @description Lägger till en knapp som läser in kommande inlägg utan uppdatering av sidan.
- // ==/UserScript==
- /**
- * Get HTML asynchronously
- * @param {String} url The URL to get HTML from
- * @param {Function} callback A callback funtion. Pass in "response" variable to use returned HTML.
- * Source: http://gomakethings.com/getting-html-asynchronously-from-another-page/
- */
- var getHTML = function ( url, callback ) {
- // Feature detection
- if ( !window.XMLHttpRequest ) return;
- // Create new request
- var xhr = new XMLHttpRequest();
- // Setup callback
- xhr.onload = function() {
- if ( callback && typeof( callback ) === 'function' ) {
- callback( this.responseXML );
- }
- }
- // Get the HTML
- xhr.open( 'GET', url );
- xhr.responseType = 'document';
- xhr.send();
- };
- function loadPage () {
- if (nextExists) { // Förutsatt att det finns fler sidor
- nextButton.onclick = ""; // Förhindra att flera sidor laddas in samtidigt
- nextButton.style.cssText = "margin-bottom:16px"; // Ta bort klickpekaren
- nextButton.getElementsByClassName("cell")[0].innerHTML = "Laddar..."; // Ändra texten
- getHTML( nextURL, function (response) { // Hämta nästa sida
- document.getElementsByClassName("forumPosts")[0].innerHTML += response.getElementsByClassName("forumPosts")[0].innerHTML; // Lägg till inlägg från nästa sida
- console.log("SweClockers JavaScript sidladdare: Nästa sida har lästs in");
- if (response.getElementsByClassName("next-page")[0] !== undefined) { // Kolla om det finns fler sidor efter den senast inlästa
- nextExists = true;
- nextURL = response.getElementsByClassName("next-page")[0].href;
- nextButton.getElementsByClassName("cell")[0].innerHTML = "Ladda fler inlägg"; // Ändra texten
- nextButton.style.cssText = "margin-bottom:16px;cursor:pointer"; // Lägg tillbaka klickpekaren
- nextButton.onclick = loadPage; // Låt funktionen köras ytterligare gånger
- console.log("SweClockers JavaScript sidladdare: Det finns fler sidor att läsa in.");
- } else {
- nextExists = false;
- nextButton.getElementsByClassName("cell")[0].innerHTML = "Det finns inga fler inlägg att ladda"; // Ändra texten
- console.log("SweClockers JavaScript sidladdare: Det finns inga fler sidor att läsa in.");
- }
- });
- } else {
- console.log("SweClockers JavaScript sidladdare: Sista sidan har redan laddats.");
- }
- }
- // Justera margin på .forumPosts så att knappen passar in bättre
- document.getElementsByClassName("forumPosts")[0].style.cssText = "margin-bottom:8px";
- // Skapa ruta/knapp
- var nextButton = document.createElement("div");
- nextButton.style.cssText = "margin-bottom:16px";
- nextButton.className = "forumPost"; // Alla klasser och divar på den här raden och raden under är till för att forumets stylesheet (både vanligt och Blargmode) ska appliceras korrekt
- nextButton.innerHTML = '<div class="postHeader table"><div class="row"><div class="cell headerLink" style="text-align:center"></div></div></div>';
- document.getElementsByClassName("forumControls")[0].parentNode.insertBefore(nextButton, document.getElementsByClassName("forumControls")[1]); // Sätt in elementet efter alla inlägg
- // Kolla om det finns fler sidor
- if (document.getElementsByClassName("next-page")[0] !== undefined) { // Om knappen "Nästa" finns
- var nextExists = true;
- var nextURL = document.getElementsByClassName("next-page")[0].href;
- console.log("SweClockers JavaScript sidladdare: Det finns fler sidor att läsa in.");
- nextButton.getElementsByClassName("cell")[0].innerHTML = "Ladda fler inlägg"; // Ändra texten
- nextButton.style.cssText = "margin-bottom:16px;cursor:pointer"; // Lägg till klickpekare för knappen
- nextButton.onclick = loadPage; // Lägg till funktion för att ladda nästa sida
- } else { // Om knappen "Nästa" inte finns
- var nextExists = false; // Förhindra att funktionern över huvud taget kan köras
- nextButton.getElementsByClassName("cell")[0].innerHTML = "Det finns inga fler inlägg att ladda"; // Ändra texten
- console.log("SweClockers JavaScript sidladdare: Det finns inga fler sidor att läsa in.");
- }