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