Я пытаюсь написать расширение chrome, где я хочу иметь возможность начать воспроизведение видео Netflix с главной страницы без необходимости переходить по URL-адресу видео, используя что-то вроде window.location.href = '...'
, что приведет к появлению страницы перезагрузить. Я хочу сделать это без перезагрузки страницы, потому что скрипт содержимого расширения chrome вводится повторно каждый раз, когда происходит перезагрузка страницы, чего я не хочу делать каждый раз.
Например, если вы go зайдете на веб-сайт netflix и нажмете кнопку mov ie, видео начнет воспроизводиться без полной перезагрузки страницы. Это говорит о том, что изменения в DOM инициируются через JavaScript? Кто-нибудь знает, как это сделать?
Я попытался просмотреть некоторые из кодов Javascript, чтобы посмотреть, есть ли функция, которую я мог бы вызвать, чтобы вызвать какое-то событие, но код был слишком сложным, чтобы понять , Поэтому другой подход, о котором я подумал, состоял в том, чтобы сделать fetch
с URL-адресом видео, которое я хочу воспроизвести, а затем просто заменить содержимое элемента body
на содержимое извлеченного html. Например:
fetch("https://www.netflix.com/watch/70174779")
.then(function(response) {
response.text().then(function(html) {
var parser = new DOMParser();
var doc = parser.parseFromString(html, "text/html");
document.getElementsByTagName(
"body"
)[0].innerHTML = doc.getElementsByTagName("body")[0].innerHTML;
});
})
.catch(function(err) {
console.log("Fetch Error :-S", err);
});
Однако, когда я запускаю это в консоли Chrome DevTools, это просто приводит к пустой странице. Я тоже не получаю никаких полезных ошибок. Я также попытался заменить все содержимое html:
fetch("https://www.netflix.com/watch/70174779")
.then(function(response) {
response.text().then(function(html) {
document.open();
document.write(html);
document.close();
});
})
.catch(function(err) {
console.log("Fetch Error :-S", err);
});
Но это также не сработало, и я получил кучу ошибок в консоли.