NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Google Images link fixer // @namespace http://tvkdevelopment.com // @author tvkanters // @description Keeps Google's Images link at the second spot and the Videos link at the third spot. // @include /^[a-z]+:\/\/([^.]+.)?google.[a-z]+/ // @version 7 // @grant none // @require http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.js // ==/UserScript== var onloadCount = 0; var keyUpFixed = false; $(function() { // onload is called 3 times for some reason if (++onloadCount > 1) { return; } function fixClasses(link) { if (!link.hasClass("hdtb-mitem")) { link.removeClass(); link.addClass("hdtb-mitem hdtb-imb"); } } function fixImagesLink() { var fixed = 0; var interval = setInterval(function() { // Makes sure the links are fixed after changing query if (!keyUpFixed) { var inputFields = $("#lst-ib"); if (inputFields.length > 0) { keyUpFixed = true; inputFields.keyup(function() { fixImagesLink(); }); } } var links = $("#hdtb-msb"); // Ignore if the links couldn't be found if (!links.length) { safeGuard(); return; } var imagesLink = links.find("a[href*='tbm=isch']").parent(); var videosLink = links.find("a[href*='tbm=vid']").parent(); if (!imagesLink.length) { imagesLink = links.find(".hdtb-mitem:contains(Images)"); } if (!videosLink.length) { videosLink = links.find(".hdtb-mitem:contains(Videos)"); } // Ignore when the links are still on the right spot if (links.children().index(imagesLink) == 1 && links.children().index(videosLink) == 2) { safeGuard(); return; } fixClasses(imagesLink); fixClasses(videosLink); links = imagesLink.parent(); // Move the links imagesLink.insertAfter(links.children(":first")); videosLink.insertAfter(imagesLink); // After fixing the links twice, we're done if (++fixed == 2) { clearInterval(interval); return; } // Make sure we stop checking in case Google changes something safeGuard(); }, 50); var safeGuardCount = 0; var safeGuardLimit = 50; function safeGuard() { if (++safeGuardCount > safeGuardLimit) { clearInterval(interval); } } } fixImagesLink(); });