Chrome捕获可见标签无效

时间:2015-05-07 14:24:09

标签: javascript jquery html google-chrome google-chrome-extension

按钮 BrowserAction时, buttonClicked() 功能和 onTabCreate() 功能中的代码有效图标即可。

但是当我添加 popup.html 并在其中创建了几个按钮时。点击 "Trello" 按钮后。我希望执行 buttonClicked() 中的代码,我将此代码放在 eventPage.js 中。

enter image description here

控件正在到达该功能,但是我现在无法捕获可见的Tab 为什么会这样?我该如何解决这个问题?

从代码中可以看出,imageData正在保留标签的图像(buttonClicked()中的第3行)

buttonClicked()中的最后一行,调用onTabCreate()。在onTabCreate(),我正在通过imageData,但我没有收到图片。

如果需要,我会提供更多信息。

由于

buttonClicked() -

function buttonClicked() {

    chrome.tabs.captureVisibleTab(null, {}, function (image) {
      imageData = image;

      createdTabUrl = chrome.extension.getURL('cardCreate.html');

      chrome.tabs.query({ active: true }, function (tabs) {
        var i, tab;


        // Only select the current active tab, not any background tab or dev tools
        for (i = 0; i < tabs.length; i += 1) {
          // TODO: more robust way to check if current tab is a page from this extension (either when I get a static extension id or with a flag)
          if (tabs[i].url.match(/^http/) || tabs[i].url.match(/^chrome-extension.*\/cardCreate\.html$/)) {
            tab = tabs[i];
          }
        }

        chrome.tabs.create({ url: createdTabUrl, index: (tab.index || 0) + 1 }, onTabCreated);
      });
    });
  }

onTabCreate() -

  // TODO: more robust way to send image data to page ?
  function onTabCreated(tab) {
    setTimeout(function (){
      chrome.runtime.sendMessage({ imageData: imageData }, function(response) {
        // Callback does nothing
      });
    }, 1000);

    var views = chrome.extension.getViews();
    for (var i = 0; i < views.length; i++) {
      var view = views[i];

      // If this view has the right URL and hasn't been used yet...
      if (view.location.href == createdTabUrl) {
        console.log("----------------------");
        // console.log(view);
        // console.log(view.location.href);
      }
    }

  }

    chrome.browserAction.onClicked.addListener(buttonClicked);

编辑:

   window.onload = function() {

    document.getElementById('loginText').addEventListener('click', login);
    document.getElementById('Trello').addEventListener('click', buttonClicked);
    //listener for ButtonClick
   // In popup.html , I included eventPage.js as well.
};

0 个答案:

没有答案