我编写了一个使用 chrome.tabCapture API 记录屏幕的 chrome 扩展。我希望能够使用 puppeteer 开始和停止录制。
开始录制是一个简单的部分,因为我需要从头开始 - 我只是从内容脚本发送一条消息:
setTimeout(function(){
chrome.runtime.sendMessage({ action: "START_CAPTURING"}, function(response) {});
}, 100);
Run Code Online (Sandbox Code Playgroud)
现在,我不知道如何从 puppeteer 向后台脚本发送消息以停止捕获。我尝试向页面添加一个按钮并等待内容脚本中的点击事件:
var button = document.getElementById("stopBtn");
button.addEventListener("click", function() {
chrome.runtime.sendMessage({ action: "STOP_CAPTURING"}, function(response) {});
}, false);
Run Code Online (Sandbox Code Playgroud)
有用。这种方法的问题在于,即使我是内容的所有者并且能够添加一个额外的元素只是为了记录,在我看来这不是一个优雅的解决方案。
我希望能够将消息从 puppeteer 发送到在那里声明的扩展或调用函数。