Domanda

Mi chiedo se sia possibile ottenere la favicon di un sito Web tramite un URL con JavaScript.

Ad esempio, ho un URL http://www.bbc.co.uk/ e vorrei che il percorso della favicon fosse descritto in <link rel="icon" .../> metatag - http://www.bbc.co.uk/favicon.ico.

Ho molti URL, quindi non dovresti caricare tutte le pagine e cercare link etichetta, penso.

Qualche idea ?

È stato utile?

Soluzione

Si potrebbe utilizzare YQL per questo

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D"http://bbc.co.uk/"and%20xpath%3D"/html/head/link[@rel%3D'icon']%20|%20/html/head/link[@rel%3D'ICON']%20|%20/html/head/link[@rel%3D'shortcut%20icon']%20|%20/html/head/link[@rel%3D'SHORTCUT%20ICON']"&format=json&callback=grab

Questa query utilizzato da Visualizzazione feed Favicons Greasemonkey script di .

È possibile scrivere query in console YQL, ma richiede il login (a proposito, utilizzando le query non):

http://developer.yahoo.com/yql/console/#h=select%20*%20from%20html%20where%20url%3D%22http%3A//bbc.co.uk/%22and%20xpath%3D%22/html/head/link%5B@rel%3D%27icon%27%5D%20%7C%20/html/head/link%5B@rel%3D%27ICON%27%5D%20%7C%20/html/head/link%5B@rel%3D%27shortcut%20icon%27%5D%20%7C%20/html/head/link%5B@rel%3D%27SHORTCUT%20ICON%27%5D%22

E 'meglio di http://www.google.com/s2/favicons?domain=www.domain.com , in caso esiste favicon, ma non trova domain.com/favicon.ico

Altri suggerimenti

Qui ci sono 2 opzioni di lavoro, ho provato più di 100 gli URL e ottenuto risultati diversi in cui ciascuna opzione. Si prega di notare, questa soluzione non è JS, ma JS potrebbe non essere necessario.

<!-- Free --> 
<img height="16" width="16" src='http://www.google.com/s2/favicons?domain=www.edocuments.co.uk' />
<!-- Paid -->
<img height="16" width="16" src='http://grabicon.com/edocuments.co.uk' />

Improvvisamente ho trovato qualcosa chiamato Google Shared Stuff che restituisce un'immagine con favicon del sito web da parte hostname:

http://www.google.com/s2/favicons?domain=www.domain.com

Ma fot sito della BBC restituisce favicon un po 'piccola. Confronto:

http://www.google.com/s2/ favicon? domain = www.bbc.co.uk
http://www.bbc.co.uk/favicon.ico

Dopo 30.000 a 40.000 test ho notato che realmente incontrare un sacco di diverse situazioni che devono essere lavorato contro.

Il punto di partenza è naturalmente da qualche parte a guardare solo al tag rel in là e Fetch questo, ma lungo la strada si trovano sempre più situazioni si dovrà coprire.

Nel caso qualcuno guarderà questa discussione e cerca di avvicinarsi al 100% perfezione ho caricato il mio codice (PHP) qui: https://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php . Questo fa parte di un (GPL) WordPress Plugin che recupera Favicons, più o meno, su richiesta di allora, fuori limiti di quella standard di Google (come detto sopra). Il codice trova una quantità sostanzialmente più icone che il codice di Google. Ma include anche Google e gli altri come fornitori di immagini di scelta rapida ulteriori iterazioni sul tentativo di recuperare l'icona.

Quando si leggono attraverso il codice probabilmente vedrete alcune situazioni che si incontrano per esempio i dati Base64 URI, pagine reindirizzamento a 404 pagine o reindirizzare un gazillion volte, il recupero di codici di stato strano HTTP e dover controllare ogni possibile codice di ritorno HTTP per Validità, le stesse icone che hanno un tipo mime sbagliata, di aggiornamento lato client tag, icone della cartella principale e nessuno nel codice HTML, ecc ... ecc ... ecc ...

Se si sale una directory troverai altre classi che poi vengono mento per memorizzare le icone effettive contro il loro url (e naturalmente sarà quindi necessario scoprire che "rami" utilizzano lo stesso favicon e che non, e trovare se appartengono allo stesso "proprietario" o sono parti molto diverse, ma sotto lo stesso dominio.

Disclaimer:Ho creato questo servizio da solo, ma puoi provare http://grabicon.com.È un'API molto semplice per le favicon che gestisce il ridimensionamento e la riformattazione al volo.Utilizza anche molta memorizzazione nella cache proattiva per la velocità.Come la maggior parte degli altri servizi come questo, puoi inserirlo direttamente nel tuo HTML e funziona benissimo.Non dispongo ancora di documentazione online, ma ecco alcuni esempi che utilizzano la destinazione Web preferita da tutti:

Ottieni l'icona in formato PNG:

http://grabicon.com/icon?domain=microsoft.com

Ridimensiona a 64 pixel quadrati:

http://grabicon.com/icon?domain=microsoft.com&size=64

Questo ricerca l'icona utilizzando i vari metodi che le persone possono implementarle e utilizza la versione con la massima risoluzione disponibile, poiché i file favicon.ico in realtà contengono un collezione di icone.Utilizza quella versione per ridimensionarla in base alle tue preferenze, a meno che non sia già disponibile una corrispondenza perfetta.

Fatemi sapere cosa ne pensate e quali altre funzionalità potrebbero piacervi!

AGGIORNAMENTO:

Grabicon è ora di nuovo operativo e non andrà da nessuna parte.È stato originariamente realizzato per un cliente che in seguito ha deciso di non supportarlo.Ma ora è sotto la mia diretta cura, con una velocità e una capacità di ridimensionamento molto migliori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top