6

Sto sviluppando un'estensione di Chrome e il mio requisito è quello di rilevare il motore di ricerca predefinito del browser Web di Chrome.Come rilevare il motore di ricerca predefinito di Chrome

Ho cercato molto sul web ma non ho trovato alcuna API per rilevare così.

Ho anche cercato sul web di farlo con Javascript/Jquery ma non ho avuto fortuna finora.

Si prega di suggerirmi in qualche modo in modo da poter rilevare motore di ricerca predefinito per i browser Chrome.

risposta

1

L'unico modo che posso pensare è query the HTML5 external interface.

Sebbene questo non fornisca il motore di ricerca predefinito degli utenti, è possibile interrogare gli URL del motore di ricerca e vedere se ne sta utilizzando uno che conosce l'URL di.

installed = window.external.IsSearchProviderInstalled(url) 

Restituisce un valore basato sul confronto URL per gli URL delle pagine dei risultati dei motori di ricerca installati.

0: nessuno dei motori di ricerca installati corrisponde all'URL.

1: uno o più motori di ricerca installati corrispondono all'URL, ma nessuno è il motore di ricerca predefinito dell'utente.

2: il motore di ricerca predefinito dell'utente corrisponde all'URL.

Ma essere consapevoli di quanto segue:

L'url viene confrontato con gli URL delle pagine dei risultati dei motori di ricerca installati utilizzando una corrispondenza del prefisso. Vengono verificate solo le pagine dei risultati nello stesso dominio dello script che chiama questo metodo.

Ciò significa che è possibile controllare solo se il browser si trova sul sito che si sta interrogando.

Quindi, se si naviga a https://www.google.com ed eseguire il seguente nella console:

external.IsSearchProviderInstalled("https://www.google.com") 

2 saranno restituiti, se si esegue lo stesso nella console su un altro URL da quello che si sta eseguendo la query, è otterrà un errore.

+0

Molto interessante, ma quasi inutile per lo scopo dichiarato. – Xan

+0

Non inutile poiché l'estensione potrebbe eseguirlo su ciascun sito. –

Problemi correlati