Chrome页面操作点击无效

时间:2010-10-26 09:10:34

标签: google-chrome-extension

这是我的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 个答案:

答案 0 :(得分:3)

如果您想重定向需要使用的标签:

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

您还需要检查页面的状态,因为checkForValidUrl将针对每个页面执行两次:

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

答案 1 :(得分:-2)

您是否尝试过使用javascripts window.location函数? e.g:

了window.location = “http://www.bing.com”;

如果这不起作用,那么你可能会想到你的事件监听器的问题。