Действие Chrome Page click не работает - PullRequest
4 голосов
/ 26 октября 2010

это мой файл manifest.json

{
  "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"
  ]
}

Это 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>

когда я нажимаю на значок действия страницы, я хочу перенаправить страницу вBing.com, но это событие клика у меня не работает.

Спасибо

Ответы [ 2 ]

3 голосов
/ 26 октября 2010

Если вы хотите перенаправить вкладку, вам нужно использовать:

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

Вам также необходимо проверить состояние страницы, так как checkForValidUrl будет выполняться дважды для каждой страницы:

function checkForValidUrl(tabId, changeInfo, tab) {
    if(changeInfo.status === "loading") {
        //...
    }
});
0 голосов
/ 26 октября 2010

Вы пытались использовать вместо этого функцию javascripts window.location?Например:

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

Если это не сработает, возможно, это проблема с вашим прослушивателем событий, я бы подумал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...