Я хочу создать временную надстройку Firefox с помощью всплывающего окна в панели навигации, чтобы изменить скорость воспроизведения видео в браузере.(на основе этого урока https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_second_WebExtension)
Я создал всплывающую иконку и скрипт для выбора значения скорости (index.html, script.js). А затем еще один файл app.js для измененияскорость видео в соответствии с выбранным значением:
manifest.json
{
"manifest_version": 2,
"name": "Netflix_speed",
"version": "1.0",
"description": "Adds an extension button to change the speed of a video played on Netflix.",
"icons": {
"64": "icons/icon-64.png"
},
"permissions": [
"activeTab"
],
"content_scripts": [{
"matches": [ "*://*.netflix.com/*" ],
"js": [ "content_scripts/app.js" ]
}],
"browser_action": {
"browser_style": true,
"default_icon": "icons/icon-64.png",
"default_title": "Netflix_speed",
"default_popup": "popup/index.html"
}
}
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<div id="popup-content">
<div class="number" id="0.75">0.75</div>
<div class="number" id="1">1</div>
<div class="number" id="1.25">1.25</div>
</div>
<script src="script.js" type="module"></script>
</body>
</html>
script.js
const listenForClicks = () => {
document.addEventListener("click", (e) => {
// console.log('log: ', e.target.textContent);
// console.log(e);
switch (e.target.textContent) {
case '0.75':
console.log(0.75);
return 0.75;
break;
case '1':
console.log(1);
return 1;
break;
case '1.25':
console.log(1.25);
return 1.25;
break;
default:
console.log("default");
return 1;
}
}
)};
listenForClicks();
export default listenForClicks
app.js
import listenForClicks from popup/script.js
let speed = listenForClicks();
console.log(speed);
console.log('app.js')
const vidSpeed = () => {
document.querySelectorAll('video').forEach(v=>v.playbackRate=speed);
}
Когда я запускаю index.html в браузере, он возвращает значения так, как я хочу. Однако, если я запускаю его через надстройку, возврата или ошибки нетЯ думаю, что у меня проблема с импортом / экспортом между всплывающим файлом и скриптом контента, но я не могу выяснить, что это такое.