[Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona

ken_korn

Nuovo Utente
27 Apr 2017
14
2
3
Sto realizzando una piccola estensione per il browser utilizzando le Web Api di Mozilla:
https://developer.mozilla.org/en-US/Add-ons/WebExtensions

Una delle funzioni di tale estensione è quella di dover recuperare la favicon di un sito qualunque.
purtroppo la suddetta proprietà sembra non funzionare e con essa tante altre proprietà e metodi delle api tabs.
Qui di seguito i file dell'estensione il cui sorgente è stato ovviamente ridotto per potersi concentrare sulla funzione specifica:

manifest.json
Codice:
{
  "browser_action": {
    "browser_style": true,
    "default_title": "Tab",
    "default_popup": "tabs.html"
  },
  "description": "A example of Tab type",
  "manifest_version": 2,
  "name": "Tab",
  "permissions": [
    "tabs"
  ],
  "version": "1.0"
}
tabs.html
HTML:
<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="tabs.css"/>
  </head>

<body>
    <input id="demo" type="button" value="Get the page favicon!">

  <script src="tabs.js"></script>
</body>

</html>
tabs.js
JavaScript:
function getFavicon(){
    console.log(browser.tabs.Tab.favIconUrl);

};
document.getElementById("demo").addEventListener("click", getFavicon);

Spero che qualcuno possa aiutarmi a trovare una soluzione al problema
 

ken_korn

Nuovo Utente
27 Apr 2017
14
2
3
No, semplicemente che non ho output da parte dello script e nessun errore di sorta
 

Antonio De Marco

Utente Attivo
28 Lug 2015
60
4
8
ademarco.it
Mhm molto strano, a questo mi viene da pensare che la funzione non venga mai chiamata perchè come da codice scrive in console e se mi dici che non hai messaggi o errori... io farei degli alert per capire dove l'esecuzione non entra. Magari mettilo all'interno della funzione getFavicon() e vedi un po se almeno viene chiamata correttamente.
 

ken_korn

Nuovo Utente
27 Apr 2017
14
2
3
Ho risolto così:
Codice:
function onGot(tabInfo){
            faviconUrl = tabInfo[0].favIconUrl;
        };
     
        var currentTab = browser.tabs.query({active:true, currentWindow:true});
        var x = currentTab.then(onGot);
Grazie Antonio De Marco per il prezioso consiglio degli alert per capire meglio il codice.