Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript调用google chrome屏幕截图扩展?_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

如何从javascript调用google chrome屏幕截图扩展?

如何从javascript调用google chrome屏幕截图扩展?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我有一个google chrome扩展,它可以生成一个网页的活动选项卡的屏幕截图并下载。启用后,它在chrome上运行良好。我想在我的网页上点击一个按钮来生成和下载相同的屏幕截图。如何从网页中调用该分机? 我的扩展代码如下: manifest.JSON content.js 请提供帮助。或者从您的网页发送CustomEvent并在内容脚本中收听。我已经尝试过了。但身份证不适合我。你能把如何完成的代码贴出来吗?那太多了。。。你能给我看一下不起作用的代码吗?我只是简单地修复它@krishnabhar

我有一个google chrome扩展,它可以生成一个网页的活动选项卡的屏幕截图并下载。启用后,它在chrome上运行良好。我想在我的网页上点击一个按钮来生成和下载相同的屏幕截图。如何从网页中调用该分机? 我的扩展代码如下:

manifest.JSON content.js
请提供帮助。

或者从您的网页发送CustomEvent并在内容脚本中收听。我已经尝试过了。但身份证不适合我。你能把如何完成的代码贴出来吗?那太多了。。。你能给我看一下不起作用的代码吗?我只是简单地修复它@krishnabharadia,如果你已经试过了,那么你需要在问题中说明你已经试过了,并在问题中包含不起作用的代码。现在,这个问题似乎与wOxxOm链接的问题是重复的,因为你问的是同样的问题,问题的解决方式也是一样的。请明确说明:你想从任何网站激活截图扩展,还是只从你的网站激活截图扩展。您是否打算让网站呼叫您的分机,或者您的分机正在监听用户单击网站中的按钮?这个按钮是已经在网站上的还是扩展添加的?或者从你的网页发送一个CustomEvent并在内容脚本中收听它。我已经尝试过了。但身份证不适合我。你能把如何完成的代码贴出来吗?那太多了。。。你能给我看一下不起作用的代码吗?我只是简单地修复它@krishnabharadia,如果你已经试过了,那么你需要在问题中说明你已经试过了,并在问题中包含不起作用的代码。现在,这个问题似乎与wOxxOm链接的问题是重复的,因为你问的是同样的问题,问题的解决方式也是一样的。请明确说明:你想从任何网站激活截图扩展,还是只从你的网站激活截图扩展。您是否打算让网站呼叫您的分机,或者您的分机正在监听用户单击网站中的按钮?这个按钮是已经在网站上的还是扩展添加的?
    {
      "name": "Screenshot Extension",
      "version": "1.0",
      "description": "A simple screenshot extension",
      "background": {
          "persistent": false,
          "scripts": ["background.js"]
     },
     "content_scripts": [
    {
        "matches" : ["<all_urls>"],
        "js": ["content.js"]
    }
    ],
    "browser_action": {
    "default_icon": "camera.png",
    "default_title": "Screenshot"
    },
    "permissions": ["tabs", "<all_urls>", "activeTab"],
    "manifest_version": 2
    }
    var screenshot = {
    content : document.createElement("canvas"),
    data : '',

    init : function() {
    this.initEvents();
    },

    saveScreenshot : function() {
    var image = new Image();
    image.onload = function() {
        var canvas = screenshot.content;
        canvas.width = image.width;
        canvas.height = image.height;
        var context = canvas.getContext("2d");
        context.drawImage(image, 0, 0);

        // save the image
        var link = document.createElement('a');
        link.download = "download.png";
        link.href = screenshot.content.toDataURL();
        link.click();
        screenshot.data = '';
    };
    image.src = screenshot.data; 
    },

    initEvents : function() {
    chrome.browserAction.onClicked.addListener(function(tab) {
        chrome.tabs.captureVisibleTab(null, {
            format : "png",
            quality : 100
        }, function(data) {
            screenshot.data = data;

            // send an alert message to webpage
            chrome.tabs.query({
                active : true,
                currentWindow : true
            }, function(tabs) {
                chrome.tabs.sendMessage(tabs[0].id, {ready : "ready"}, 
            function(response) {

                        screenshot.saveScreenshot();

                                        });
            }); 

            });
            });
            }
         };

        screenshot.init();
   chrome.extension.onMessage.addListener(function(msg, sender, 
   sendResponse) {

   if (msg.ready === "ready") {
    if (confirm('Do you want to capture the screen?')) {
        sendResponse({download : "download"});
    }
   }

   });