Greasy Fork is available in English.
Improved version of the old "Emails" quick search functionality in Gmail, one click to view all emails you've sent or received from any address
当前为
// ==UserScript== // @name Fix Gmail Email Search // @namespace https://github.com/gserafini/fix-gmail-email-search-userscript/ // @version 1.4.1 // @description Improved version of the old "Emails" quick search functionality in Gmail, one click to view all emails you've sent or received from any address // @author Gabriel Serafini // @license MIT // @donate If you like this, PayPal a little love to [email protected] // @screenshot https://raw.githubusercontent.com/gserafini/fix-gmail-email-search-userscript/master/fix-gmail-email-search-screenshot.png // @icon https://raw.githubusercontent.com/gserafini/fix-gmail-email-search-userscript/master/SearchEmails_icon.png // @match *://mail.google.com/* // @match *://contacts.google.com/widget/hovercard/* // @match *://gmail.com/* // @include *gmail.com/* // @include *mail.google.com/* // @include *contacts.google.com/widget/hovercard/* // @grant none // @require https://code.jquery.com/jquery-3.3.1.min.js // ==/UserScript== (function() { 'use strict'; $(function() { // Handler for .ready() called. $('body').prepend('<style>.email_search_icon {outline: none; ' + 'position: relative; z-index: 0; padding: 0 4px; margin: 0; top: 2px;} ' + '.email_search_icon svg {fill: #600;} .email_search_icon svg:hover {fill: #f00;} ' + '.email_search_icon {cursor: pointer;} </style>'); function get_email_search_icon_link(email_address) { var icon = '<span style=""' + 'class="email_search_icon" title="Click to search for all emails with ' + email_address + '" email="' + email_address + '">' + '<svg focusable="false" height="1em" viewBox="0 0 24 24" width="1em" xmlns="http://www.w3.org/2000/svg">' + '<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 ' + '4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path><path d="M0 0h24v24H0z" fill="none"></path></svg></span>'; return icon; } function insert_email_search_icon() { // This may change over time, so will need to update it periodically most likely $('.gD').not('.email_search_icon+.gD') .each( function (index) { // console.log("Found email for possible searching: " + $(this).attr('email')); $(this) .before(get_email_search_icon_link($(this).attr('email'))) } ); // Find all emails in pop-up contact cards and also inside emails $('a[href^="mailto:"]').not('.email_search_icon+a[href^="mailto:"]').not('div[contenteditable="true"] a[href^="mailto:"]') .each( function (index) { var email_address = $(this).attr('href').replace("mailto:",""); // console.log("Found email for possible searching: " + email_address); $(this) .before(get_email_search_icon_link(email_address)); } ); } // Poll periodically for newly created divs setInterval(insert_email_search_icon, 300); $('body').on('click', '.email_search_icon', function() { event.stopPropagation(); if (window.self==window.top) { $('input[name="q"]').val($(this).attr('email')); $('button[aria-label="Search Mail"]').click(); // console.log("Search icon clicked! Searching for " + $(this).attr('email') + "..."); } else { // console.log("Search email for " + $(this).attr('email') + " link clicked in hovercard"); window.parent.postMessage("searchForEmail="+$(this).attr('email'),"*"); } }); if (window.self==window.top) { $(window).on("message onmessage", function(e) { var event = e.originalEvent; if (event.origin === "https://contacts.google.com" && event.data.indexOf("searchForEmail=") != -1) { // console.log(event.data); var email_address = event.data; email_address = email_address.replace("searchForEmail=",""); // console.log("Found email to search for: " + email_address); $('input[name="q"]').val(email_address); $('button[aria-label="Search Mail"]').click(); // console.log("Search icon clicked in hovercard! Searching for " + email_address + "..."); } }); } }); })();