0

我正在尝试创建一个将可见选项卡显示为小图像的弹出窗口。从 chrome.tabs.captureVisibleTab() 函数返回的ImgSrc是“未定义”。我试过从不同的地方运行它。我可以验证从 tabs.Query() 返回的选项卡不为空,因此 tabs[0].id 不为空。

我做错了吗?

这是我的清单、popup.html 和 popup.js 文件:

{
  "manifest_version": 2,

  "name": "SuperFave",
  "description": "Saves favorites demo",
  "version": "1.0",

  "browser_action": {
    "default_popup": "popup.html"
  },

  "permissions": [
    "tabs",
    "<all_urls>"
  ]
}

popup.html:

<html>
  <head>
    <script type="text/javascript" src="jquery-1.10.2.min.js">
    </script>
    <script type="text/javascript" src="popup.js">
    </script>
  </head>
  <body>
  </body>
</html>

popup.js:

$(document).ready( function () {
  chrome.tabs.query( {
      // gets the window the user can currently see
      active: true, 
      currentWindow: true 
    },
    function (tabs) {
      chrome.tabs.captureVisibleTab( 
        tabs[0].id,
        function (src) {
          // displays a link to the image. Can be replaced by an alert() to 
          // verify the result is 'undefined'
          $('body').append("<a href='" + src + "'>" + tabs[0].url + "</a>");
        }
      ); 
    }
  );
});
4

1 回答 1

2

captureVisibleTab 仅适用于窗口中的当前活动选项卡。因此,我需要传入 window-id,而不是 tab-id。

popup.js 需要:

$(document).ready( function () {
  chrome.tabs.query( {
      // gets the window the user can currently see
      active: true, 
      currentWindow: true 
    },
    function (tabs) {
      chrome.tabs.captureVisibleTab( 
        chrome.windows.WINDOW_ID_CURRENT,
        function (src) {
          // displays a link to the image. Can be replaced by an alert() to 
          // verify the result is 'undefined'
          $('body').append("<a href='" + src + "'>" + tabs[0].url + "</a>");
        }
      ); 
    }
  );
});
于 2013-08-29T01:54:00.507 回答