Я пытаюсь загрузить файл субтитров во всплывающем окне и, используя
popup.js
...
function inputChange(event) {
if (this.files[0]) {
var path = this.files[0].name
chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {
chrome.tabs.sendMessage(
tabs[0].id,
{ type: "SUBTITLE_ADDED", payload:path},
function(response) {}
);
});
}
}
...
, этот сценарий отправляю путь к файлу к сценарию содержимого.В скрипте контента я создаю элемент track, а из предыдущего скрипта я устанавливаю путь src.Но я думаю, что у него есть некоторые проблемы, потому что при наведении курсора на атрибут src он также включает доменное имя, например
www.google.com / samplevideo /../ subtitle.vtt
.И, возможно, поэтому я не получаю субтитры для видеоплеера.Как установить атрибут src, отправив местоположение файла из всплывающего скрипта?
content-script.js
const $videoPlayer = document.getElementsByTagName("video")[0];
function generateSubtitles(src, srclang = "en") {
const $track = document.createElement("track");
$track.setAttribute("kind", "subtitles");
$track.setAttribute("label", "English");
$track.setAttribute("default","");
$track.setAttribute("src", src);
$track.setAttribute("srclang", srclang);
$videoPlayer.appendChild($track);
}
chrome.runtime.onMessage.addListener(
function(message, sender, sendResponse) {
switch (message.type) {
case "SUBTITLE_ADDED":
console.log(message.payload);
generateSubtitles(message.payload)
break;
default:
break;
}
}
);