您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Replace links and click actions of the Google Image Search results with direct links to the picture, and the page link
当前为
- // ==UserScript==
- // @name Google Image Search Direct Links Old Style
- // @version 1.0
- // @description Replace links and click actions of the Google Image Search results with direct links to the picture, and the page link
- // @namespace bp
- // @author Benjamin Philipp <benjamin_philipp [at - please don't spam] gmx.de>
- // @include /^https?:\/\/(www\.)*google\.[a-z\.]{2,5}\/search.*tbm=isch.*/
- // @require http://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js
- // @run-at document-body
- // @grant GM_xmlhttpRequest
- // @connect *
- // ==/UserScript==
- var maxtries = 10;
- var idle = true;
- var disableUpdate = false;
- function updatePage()
- {
- if($("#directLinkStyles").length<=0){
- disableUpdate = true;
- $("head").append("\
- <style id='directLinkStyles'>\
- .linkswait{ \
- box-shadow: 0 0 20px #f00; \
- border: 2px solid #f00; \
- border-radius: 5px; \
- </style>");
- disableUpdate = false;
- }
- $(".rg_di.rg_bx a.rg_l:not(.linksdone):not([href='#'])").each(function(){
- var tp = this;
- var uriLink = $(this).parent().find("div.rg_ilmbg")[0];
- var imin = tp.href.indexOf("imgurl=");
- if(imin<0)
- {
- $(tp).attr("resTries", $(tp).attr("resTries")?$(tp).attr("resTries")*1+1:1);
- if($(tp).attr("resTries")*1>=maxtries){
- console.log("This Link won't come up with a good fragment: " + $(tp).find("img")[0].src);
- return true;
- }
- updater();
- return true;
- }
- var linkconts = tp.href.substr(imin+7);
- var piclink = linkconts.substr(0,linkconts.indexOf("&"));
- var reflink = linkconts.substr(linkconts.indexOf("imgrefurl=")+10);
- reflink = decodeURIComponent(reflink.substr(0, reflink.indexOf("&")));
- piclink = decodeURIComponent(piclink);
- disableUpdate = true;
- tp.href = piclink;
- $(tp).click(function(){
- window.open(this.href);
- return false;
- })
- $(uriLink).click(function(e){
- e.preventDefault();
- e.stopImmediatePropagation();
- window.open(reflink);
- return false;
- })
- $(this).removeClass("linkswait");
- $(this).addClass("linksdone");
- disableUpdate = false;
- });
- var notready = false;
- $(".rg_di.rg_bx a.rg_l[href='#']:not(.linksdone)").each(function(){
- notready = true;
- if(!$(this).hasClass("linkswait")){
- $(this).addClass("linkswait");
- }
- });
- if(notready){
- updater();
- }
- }
- function updater(t = 1000){
- if(idle)
- {
- idle = false;
- updaterequest = false;
- updatePage();
- idletimer = setTimeout(function(){
- idle = true;
- if(updaterequest)
- updatePage();
- }, t);
- }
- else
- {
- updaterequest = true;
- }
- }
- var bodyObserver = false;
- function observeResults(){
- // console.log("observing");
- resultsObserver = new MutationObserver(updater);
- resultsObserver.observe($("#ires #rg")[0], {subtree: true, childList: true});
- if(bodyObserver !== false)
- bodyObserver.disconnect();
- }
- if($("#ires #rg").length>0){
- observeResults();
- }
- else{
- bodyObserver = new MutationObserver(function(mutations){
- if(disableUpdate || !idle){
- return;
- }
- if($("#ires #rg").length>0)
- {
- observeResults();
- }
- });
- bodyObserver.observe($("body")[0], {subtree: true, childList: true});
- }
- updatePage();