NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Google Images - search by paste // @description Reverse search an image by pasting it // @license MIT // @version 1.1.0 // @namespace tithen-firion.github.io // @match *://images.google.com/* // @match *://www.google.com/* // @grant GM.xmlHttpRequest // @grant GM_xmlhttpRequest // @require https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js // ==/UserScript== document.body.addEventListener('paste', e => { for(let item of e.clipboardData.items) { if(item.type.indexOf('image') > -1) { let progress = document.createElement('div'); progress.style.position = 'fixed'; progress.style.top = 0; progress.style.left = 0; progress.style.width = '5%'; progress.style.height = '5px'; progress.style.background = 'green'; document.body.appendChild(progress); let data = new FormData(); let file = item.getAsFile(); let fileSize = file.size; data.set('encoded_image', file); GM.xmlHttpRequest({ url: 'https://images.google.com/searchbyimage/upload', method: 'post', data: data, onload: response => { document.location = response.finalUrl; }, onprogress: response => { progress.style.width = response.loaded / fileSize * 100 + '%'; } }); e.preventDefault(); return; } } });