Posso aggiungere le opzioni del tasto destro del mouse in Google Chrome?


18

In Google Chrome, se seleziono un pezzo di testo e faccio clic con il tasto destro su di esso, ottengo l'opzione per:

"Cerca [testo] su Google"

Lo trovo estremamente utile, ma vorrei anche poter aggiungere le mie opzioni.

Ad esempio, vorrei aggiungere la possibilità di cercare su amazon.co.uk utilizzando il testo selezionato o andare direttamente alle mappe di Google utilizzando il testo selezionato (ovvero un indirizzo o codice postale) e così via.

Posso aggiungere questa funzionalità usando PhraseExpress ma preferirei riuscire a farlo direttamente da Chrome - è possibile?

Risposte:


12

Ecco un'estensione che utilizza l'API dei menu di scelta rapida per aggiungere opzioni al menu di scelta rapida per il testo selezionato e consente di definire ricerche personalizzate.

Prova http://maps.google.com/maps?q=TESTSEARCHper Google Maps e http://www.amazon.co.uk/s/?url=search-alias%3Daps&field-keywords=TESTSEARCHper Amazon.co.uk.


Sì, penso che questo faccia esattamente quello che voglio - grazie. A proposito, è necessario aggiungere il termine TESTSEARCH nelle stringhe per utilizzare la parola o la frase selezionata e funziona alla grande.
Andygrunt,

Ho modificato la mia risposta per riflettere ciò.
gdejohn,

15

Di recente è disponibile un'API dei menu di scelta rapida nello sviluppatore e nei canali beta. Puoi usarlo per scrivere le tue estensioni che aggiungono opzioni al menu di scelta rapida. Tieni presente che funzionerà solo con Google Chrome versione 6 e successive.

Ecco un esempio dalla galleria ufficiale delle estensioni:

  • Imgur Uploader (carica un'immagine su Imgur con il tasto destro del mouse)

Ne ho anche scritti tre, basati su quel codice:

  • TinEye tasto destro (esegui una ricerca inversa dell'immagine su TinEye con il tasto destro)
  • Wikipedia tasto destro del mouse (cerca articoli sul testo selezionato su Wikipedia con tasto destro)
  • Fare clic con il pulsante destro del mouse su Webster-Webster (cercare la definizione del testo selezionato su Merriam-Webster con il pulsante destro del mouse)

Puoi installarli a tuo rischio e pericolo facendo clic con il pulsante destro del mouse sui collegamenti, facendo clic su Salva collegamento come ... , trovando i file sul tuo computer e trascinandoli in una finestra di Google Chrome.

Leggi l'API qui:

Per scrivere il tuo, hai bisogno di un file manifest.json, che dovrebbe assomigliare a questo:

{
   "background_page": "background.html",
   "description": "Add a context menu item to search for selected text at Google Maps.",
   "icons": {
      "16": "icon16.png",
      "48": "icon48.png"
   },
   "minimum_chrome_version": "6",
   "name": "Google Maps Right Click",
   "permissions": [ "contextMenus", "tabs" ],
   "version": "1.0"
}

È inoltre necessario un file background.html, che dovrebbe assomigliare a questo:

<script>

function searchgooglemaps(info)
{
 var searchstring = info.selectionText;
 chrome.tabs.create({url: "http://maps.google.com/maps?q=" + searchstring})
}

chrome.contextMenus.create({title: "Search Google Maps", contexts:["selection"], onclick: searchgooglemaps});

</script>

Infine, dovresti avere almeno un'icona di 16 × 16 pixel per il menu di scelta rapida e un'icona di 48 × 48 pixel per la pagina di gestione delle estensioni. Puoi anche specificare un'icona di 128 × 128 pixel, che viene mostrata durante l'installazione, e un'icona di 32 × 32 pixel se desideri inviare l'estensione alla galleria ufficiale. Tutte le tue icone devono essere elencate in manifest.json. Assicurati che i tipi di file e i nomi corrispondano.

Metti insieme le icone, background.html e manifest.json in una cartella, quindi vai alla pagina di gestione delle estensioni su chrome://extensions, guarda in Modalità sviluppatore (penso che tu debba eseguire il canale beta o superiore per farlo apparire), fai clic su Estensione pacchetto ... , accanto a Directory radice estensione fai clic su Sfoglia ... , individua e seleziona la cartella creata, fai clic su OK e trascina il file .crx risultante nella finestra di Google Chrome.


Grazie per questo Charlatan. Avevo sentito parlare della nuova API ma stavo aspettando di trovare l'estensione che soddisfacesse i miei desideri prima di pubblicarla qui come risposta finale. Dubito fortemente che proverò a crearne uno mio perché ci sono persone molto migliori per farlo rispetto a me. Forse l'autore dell'estensione "Ricerca per contesto" lo riscriverà per utilizzare la nuova API.
Andygrunt,

Prego. È davvero molto facile adattare gli esempi di cui sopra per altri siti. Tutto quello che devi fare per farlo funzionare è cambiare l'URL. Tutto il resto lo sta solo rendendo carino. Ho modificato il codice nella mia risposta per lavorare con la ricerca su Google Maps. Dovevo solo cambiare cinque cose.
gdejohn,

Nota che ci sono alcune modifiche alle estensioni di Chrome, vale a dire che manifest.jsonora è la versione 2 e molte cose sono cambiate.
Jason,

I tuoi collegamenti a Dropbox sono interrotti. Vuoi aggiornare?
Bob Hopez,

@BobHopez Queste estensioni non funzionano più con tutte le modifiche a Chrome negli ultimi nove anni.
gdejohn,

5

Esiste un'estensione per la ricerca di contesto che fa ciò che desideri, con l'eccezione che non aggiunge nulla al menu di scelta rapida; invece, dopo aver selezionato un pezzo di testo sulla pagina, mostrerà un piccolo pulsante con un triangolo blu accanto ad esso e facendo clic su di esso apparirà un menu. testo alternativo


Eccellente. Questo fa il 99% di quello che voglio. Come dici tu, non aggiunge le opzioni al menu del tasto destro ma, cosa ancora più importante, non funziona ovunque ad es. Scrivi qualcosa nella casella di ricerca di Google, selezionalo e il pulsante non appare. Mi piacerebbe ancora sapere se è possibile aggiungere le opzioni al menu di scelta rapida, ma questo andrà avanti. Grazie.
Andygrunt,

AFAIK non c'è modo di aggiungere opzioni ai menu nativi di Chrome (come il menu "Opzioni" in alto a destra) perché le estensioni possono solo modificare DOM e visualizzare i popup. Probabilmente è stata una scelta intenzionale per ottenere una migliore compatibilità multipiattaforma.
whitequark,

1
Questo è uno dei motivi per cui mi attengo a Firefox.
CGA,

@CGA: Firefox è bello, e l'ho usato per anni, ma è troppo sciatto sul netbook Atom 2x1600.
whitequark,

Non posso essere in disaccordo con te lì.
CGA,

1

Mi è piaciuta un'estensione chiamata Menu di scelta rapida personalizzato Consente di creare voci di menu di scelta rapida completamente configurabili e funziona anche in altri browser (Opera: installa estensioni di Chrome , Firefox: Chrome Store Foxified ).

  • Installa "Menu contestuale personalizzato" dal Chrome Store
  • Apri le Opzioni per il menu contestuale personalizzato
  • Nella sezione Modifica di CRM, selezionare Selezione
  • Scorri verso il basso fino a Motori di ricerca comunemente utilizzati e aggiungine uno
  • Aggiunge quel motore di ricerca nella sezione Modifica del CRM.
  • Fai clic su di esso, non sulla sua attrezzatura, per modificarlo.
  • Cambia il nome in "Cerca su amazon.co.uk" o altro
  • Cambia il codice in

    var query;
    var url = "https://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=%s";
    if (crmAPI.getSelection()) {
        query = crmAPI.getSelection();
    } else {
        query = window.prompt('Please enter a search query.');
    }
    if (query) {
        window.open(url.replace(/%s/g,query), '_blank');
    }
    
  • Crea un'altra voce di menu del tipo di script, chiamala "Google Map" o qualsiasi altra cosa e codificala allo stesso modo:

    var query;
    var url = "https://www.google.com/maps/search/%s";
    if (crmAPI.getSelection()) {
        query = crmAPI.getSelection();
    } else {
        query = window.prompt('Please enter a search query.');
    }
    if (query) {
        window.open(url.replace(/%s/g,query), '_blank');
    }
    

0

C'è un'estensione chiamata "Ricerca nel menu contestuale". Ti consente di aggiungere URL ad esso, quindi quando selezioni un testo e fai clic su uno degli URL, passa quel testo all'URL su cui hai fatto clic.

Ad esempio, l'URL di ricerca per YouTube è:

http://www.youtube.com/results?search_query=TESTSEARCH

dove TESTSEARCH è il testo che si desidera cercare. Nell'estensione, aggiungi questa riga e sostituirà automaticamente TESTSEARCH con il testo selezionato quando lo premi. Puoi ovviamente aggiungere un'etichetta per ciascun URL.

Ecco il link all'estensione.

https://chrome.google.com/webstore/detail/ocpcmghnefmdhljkoiapafejjohldoga


0

Ciao, dato che alla domanda principale è stata data una risposta, voglio contribuire con qualcosa.

Questo è uno script semplicemente modificato simile alla ricerca di immagini inversa con Google, ma reindirizza imglink.jpg a Exif Viewer di Jeffrey per analizzare l'EXIF di un'immagine.

Grazie a Gdejohn .

Facile, crea questo 2 file che ho usato con il blocco note, aggiungi alcune icone 16x16, 48x48 e 128x128 (o elimina riga) e vai su chrome: // extensions / tick in modalità sviluppatore aggiungi la cartella contenente dei file.

Nome file: manifest.json

{
"manifest_version": 2,
    "background" : { "scripts": ["background.js"] },
    "description": "Agrega un menu contextual para ver el EXIF de imagenes. Jeffrey's Exif Viewer",
    "icons": {
            "16": "icon16.png",
            "48": "icon48.png",
            "128": "icon128.png"
        },
   "minimum_chrome_version": "6",
   "name": "Regex Exif Viewer Right Click",
   "permissions": [ "contextMenus", "tabs", "http://*/*",
 "https://*/*" ],
   "version": "1.0"
}

Nome file: background.js

/**
 * Returns a handler which will open a new tab when activated.
 */


function getClickHandler() {
  return function(info, tab) {

    // The srcUrl property is only available for image elements.

var url = "http://regex.info/exif.cgi?imgurl=" + info.srcUrl;

    // Create a new tabto the info page.

chrome.tabs.create({ url: url, });
  };
};



/**
 * Create a context menu which will only show up for images.
 */


chrome.contextMenus.create({
  "title" : "Get image info via Jeffrey's Exif Viewer",
  "type" : "normal",
  "contexts" : ["image"],
  "onclick" : getClickHandler()
});
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.