如何解决从网页发送任务到扩展chrome记录器捕获不起作用
我有一个Google Chrome浏览器的扩展程序,用于记录标签。 当我单击弹出按钮时,此扩展程序将开始记录当前选项卡,但是我想当用户单击webPage内的按钮时,该扩展程序开始记录。
我使用content.js
从网页向background.js
发送消息。
消息将成功发送到后台,但是当我开始记录时,它会提示错误:
“未经检查的runtime.lastError:当前页面未调用扩展名(请参见activeTab权限。无法捕获Chrome页面。”
这是我的网页代码:
<html>
<body>
<script>
var go = function() {
window.postMessage({type: 'REC_START'},'*')
>
<a href="javascript:go();">Click me</a>
</body>
</html>
这是content.js
:
window.addEventListener(
'message',function(a){
var data = a.data;
switch(data.type){
case 'REC_START':
chrome.runtime.sendMessage('REC_START')
break;
}
}
)
这是background.js
代码:
chrome.runtime.onMessage.addListener(function(request,sender,sendResponse){
switch(request){
case 'REC_START':
startRecording();
break;
}
})
function startRecording() {
console.log('Starting to record.');
const options = { audio: true };
chrome.tabCapture.capture(options,(stream) => {
// if (stream === null) {
// console.log(`Last Error: ${chrome.runtime.lastError.message}`);
// return;
// }
let recorder;
try {
recorder = new MediaRecorder(stream);
} catch (err) {
console.log(err.message);
return;
}
console.log('Recroder is in place.');
recorder.addEventListener('dataavailable',event => {
const { data: blob,timecode } = event;
console.log(`Got another blob: ${timecode}: ${blob}`);
});
const timeslice = 5 * 1000;
recorder.start(timeslice);
});
}
谢谢:-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。