// ==UserScript== // @name SweClockers JavaScript sidladdare // @namespace hAPsdWxok4bTePK8JZdG // @author LemonIllusion // @version 1.0.2 // @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. // @downloadURL none // ==/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(); }; // Kolla om det finns fler sidor if (document.getElementsByClassName("next-page")[0] !== undefined) { var nextExists = true; var nextURL = document.getElementsByClassName("next-page")[0].href; console.log("SweClockers JavaScript sidladdare: Det finns fler sidor att läsa in."); document.getElementsByClassName("forumPosts")[0].innerHTML += '
' document.getElementById("jsLoadPage").onclick = loadPage; } else { var nextExists = false; console.log("SweClockers JavaScript sidladdare: Det finns inga fler sidor att läsa in."); } function loadPage () { if (nextExists) { // Om det finns fler sidor document.getElementById("jsLoadPage").getElementsByClassName("cell")[0].style.cssText = "text-align:center"; document.getElementById("jsLoadPage").getElementsByClassName("cell")[0].innerHTML = "Laddar..."; document.getElementById("jsLoadPage").onclick = ""; getHTML( nextURL, function (response) { document.getElementById("jsLoadPage").parentNode.removeChild(document.getElementById("jsLoadPage")); document.getElementsByClassName("forumPosts")[0].innerHTML += response.getElementsByClassName("forumPosts")[0].innerHTML; // Lägg till posts 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; document.getElementsByClassName("forumPosts")[0].innerHTML += '
' document.getElementById("jsLoadPage").onclick = loadPage; console.log("SweClockers JavaScript sidladdare: Det finns fler sidor att läsa in."); } else { nextExists = false; document.getElementsByClassName("forumPosts")[0].innerHTML += '
' 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."); } }