2010-10-26 5 views
4

c'est mon fichier manifest.jsonChrome page d'action ne fonctionne pas cliquez

{ 
    "name": "My First Extension", 
    "version": "1.0", 
    "description": "The first extension that I made.", 
    "background_page": "background.html", 
    "page_action": 
{ 
    "default_icon": "icon.png" 
}, 
    "permissions" : [ 
    "tabs" 
    ] 
} 

C'est le background.html

<html> 
    <head> 
    <script> 
     // Called when the url of a tab changes. 
     function checkForValidUrl(tabId, changeInfo, tab) { 
     // If the letter 'page' is found in the tab's URL... 
     if (tab.url.indexOf('google') > -1) { 
      // ... show the page action. 
      chrome.pageAction.show(tabId); 
     } 
     }; 

     // Listen for any changes to the URL of any tab. 
     chrome.tabs.onUpdated.addListener(checkForValidUrl); 

    chrome.pageAction.onClicked.addListener(function(tab) 
    { 
      tab.url = 'www.bing.com'; 
          console.log('I am clicked'); 
    } 
      ); 


    </script> 
    </head> 
</html> 

quand je clique sur l'icône d'action de la page, je veux rediriger le page à Bing.com, mais cet événement de clic ne fonctionne pas pour moi.

Merci

+0

Avez vous avez vérifié la console pour des erreurs? –

+0

comment déboguer. Impossible de voir l'élément de menu inspecter, c'est désactivé. pls suggèrent – Kingkarter

+0

pense, l'écouteur d'événement n'est pas appelé. J'ai essayé de voir dans la console mais le "je suis cliqué" n'est pas appelé non plus. – Kingkarter

Répondre

-2

u ont essayé d'utiliser la fonction de la place javascripts window.location? par exemple:

window.location = "http://www.bing.com";

Si cela ne fonctionne pas alors c'est probablement un problème avec votre écouteur d'événement que j'aurais pensé.

+0

qui ne fonctionne pas. Je crois que l'écouteur d'événement n'est pas appelé. Peut-être que je manque quelque chose, mais ne sais pas quoi. – Kingkarter

3

Si vous souhaitez rediriger un onglet, vous devez utiliser:

chrome.tabs.update(tab.id, {url: "http://www.bing.com"}); 

Vous devez également vérifier l'état de la page checkForValidUrl sera exécuté deux fois pour chaque page:

function checkForValidUrl(tabId, changeInfo, tab) { 
    if(changeInfo.status === "loading") { 
     //... 
    } 
}); 
Questions connexes