Установите content-script <track>src, загрузив файл из всплывающего окна - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь загрузить файл субтитров во всплывающем окне и, используя

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;
        }
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...