问题描述
我有一个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 (将#修改为@)