Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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 Chrome扩展:在文档按钮上单击运行浏览器\u操作_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展:在文档按钮上单击运行浏览器\u操作

Javascript Chrome扩展:在文档按钮上单击运行浏览器\u操作,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在开发和扩展,一旦点击页面内的某个按钮,我就可以截取整个页面的屏幕截图。 该代码是对以下内容稍加修改的版本: 因此,如果用户单击扩展图标,就会开始捕获。我需要能够通过单击页面内的按钮来执行相同的操作,该按钮已经在页面上。我添加了background.js和content.js并尝试了不同的方法……但没有成功。你知道怎么做吗 { "name": "", "version": "", "manifest_version": 2, "description": "", "

我正在开发和扩展,一旦点击页面内的某个按钮,我就可以截取整个页面的屏幕截图。 该代码是对以下内容稍加修改的版本:

因此,如果用户单击扩展图标,就会开始捕获。我需要能够通过单击页面内的按钮来执行相同的操作,该按钮已经在页面上。我添加了background.js和content.js并尝试了不同的方法……但没有成功。你知道怎么做吗

{
    "name": "", "version": "", 
    "manifest_version": 2, "description": "",
    "browser_action": {
        "default_icon": "icon48-999.png",
        "default_popup": "popup.html"
    },
    "permissions": [
        "activeTab",
        "storage",
        "unlimitedStorage"
    ],
    "background": {
        "scripts": ["background.js"],
        "persistent": true
    },
    "content_scripts": [{
            "run_at": "document_idle",
            "matches": ["*://mydomain/app/*"],
            "js": ["content.js"]
        }]
}
目前,我可以收听如下单击事件:

content.js

document.getElementById('top-nav').addEventListener('click', function () {
    chrome.runtime.sendMessage({screencapture: true});
});
background.js …但我仍然得到“未定义”的输出

chrome.runtime.onMessage.addListener(function () {
    alert('background.js');
    chrome.tabs.captureVisibleTab(null, {format: "png"}, function (data) {
        alert(data);
    });
});

我认为您必须在页面内将UI显示为普通DOM元素(例如,指向扩展内html页面的iframe)。我可以收听pages events trought content.js,但如果问题不完整/不清楚,我就不能使用chrome.tabs.executeScriptt。你想点击的按钮是什么?您(想)在所有站点上添加它吗?如果是这样,则只能使用内容脚本来完成,这意味着该页面将已经有内容脚本,您不需要executeScript。是的,该元素在页面上已经存在。它是chrome.browserAction.showPopup,但在标准chrome中不起作用,所以不,没有办法。