2014-10-23 11 views
5

मैं एसडीके 1.17 का उपयोग कर फ़ायरफ़ॉक्स ऐड-ऑन विकसित कर रहा हूं। इसमें एक बटन है जिसमें एक बटन है (ExtJs का उपयोग करके विकसित), जब मैं बटन क्लिक करता हूं तो मैं वर्तमान पृष्ठ का स्क्रीन शॉट लेना चाहता हूं। Google क्रोम में एक एपीआई (क्रोम.पेज-कैप्चर) है। लेकिन मुझे फ़ायरफ़ॉक्स में ऐसा ही नहीं मिला। फ़ायरफ़ॉक्स में इस कार्य को main.js. से कैसे करें।फ़ायरफ़ॉक्स एडन एसडीके 1.17 स्क्रीनशॉट लें

उत्तर

5

ओ.के मुझे जवाब मिला है। इस कोड का उपयोग पूर्ण पृष्ठ स्क्रीन शॉट लेने के लिए किया जा सकता है।

अपने 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); 
    } 
    }); 

यह एडन एसडीके 1.17 के साथ किया जाता है। अच्छा काम करता है।

+0

फ्लैश सामग्री का स्क्रीनशॉट लेने का कोई विचार –

संबंधित मुद्दे