Javascript firefox插件sdk 1.17截图

Javascript firefox插件sdk 1.17截图,javascript,extjs,firefox-addon-sdk,Javascript,Extjs,Firefox Addon Sdk,我正在使用sdk 1.17开发Firefox插件。它包含一个内部带有按钮的面板(使用ExtJs开发),我想在用户单击按钮时拍摄当前页面的屏幕截图。Google chrome中有一个API(chrome.page capture)。但我在Firefox中找不到类似的版本。在firefox中,如何从main.js执行此任务。好的,我找到了答案。此代码可用于拍摄整页屏幕截图 在main.js中添加以下代码 var window = require('sdk/window/utils').getMo

我正在使用sdk 1.17开发Firefox插件。它包含一个内部带有按钮的面板(使用ExtJs开发),我想在用户单击按钮时拍摄当前页面的屏幕截图。Google chrome中有一个API(chrome.page capture)。但我在Firefox中找不到类似的版本。在firefox中,如何从main.js执行此任务。

好的,我找到了答案。此代码可用于拍摄整页屏幕截图

在main.js中添加以下代码

  var window = require('sdk/window/utils').getMostRecentBrowserWindow();
  var tab = require('sdk/tabs/utils').getActiveTab(window);
  var myData;
  tabs.activeTab.attach({
    contentScript: "self.postMessage(document.body.scrollHeight);",//recieves the total scroll height of tab
    onMessage: function(data)
    {
      console.log("Tab data received: " + data);
      myData = data;
      var thumbnail = window.document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");
      window = tab.linkedBrowser.contentWindow;
      thumbnail.width = window.screen.availWidth ;
      thumbnail.height = window.screen.availHeight ;
      var ctx = thumbnail.getContext("2d");
      var snippetWidth = window.outerWidth ;
      var snippetHeight = window.outerHeight ;
      ctx.canvas.left  = 0;
      ctx.canvas.top = 0;
      ctx.canvas.width  = window.innerWidth;
      ctx.canvas.height = myData;//canvas height is made equal to the scroll height of window
      ctx.drawWindow(window, 0, 0, snippetWidth, snippetHeight+myData, "rgb(255,255,255)");//

      var imageDataUri=thumbnail.toDataURL('image/png');
      imageDataUri = imageDataUri.replace("image/png", "image/octet-stream");        
      tabs.open(imageDataUri);
    }
  });

这是通过AddonSDK1.17完成的。很酷。

有没有拍摄flash内容截图的想法