Jak zezwolić na rozszerzenie chrome dostęp do zewnętrznego interfejsu API skryptu?

0

Pytanie

Próbuję dostać się do scenariusza z API odtwarzacza iframe YouTube, aby odtworzyć/wstrzymać wideo do rozszerzenia chrome. Mój JS znajduje się poniżej (od https://developers.google.com/youtube/iframe_api_reference).

var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

var player;

function onYouTubePlayerAPIReady() {
    player = new YT.Player('video', {
        events: {
            'onReady': onPlayerReady
        }
    });
}

function onPlayerReady(event) {
    player.playVideo();
}

Jednak, gdy przesyłam rozszerzenie w Chrome, otrzymuję następujący błąd:

Odmówił załadować skrypt 'https://www.youtube.com/iframe_api" bo to narusza następujące dyrektywy polityki bezpieczeństwa treści: "script src 'self'". Należy pamiętać, że "script src-element" nie określono wyraźnie, więc "script src" jest używane jako rezerwowe.

Próbowałem dodać adres URL w CSP w Manifest.json (poniżej). Usunąłem też wszystkie wbudowane JS.

"content_security_policy": "script-src 'self' https://www.youtube.com/iframe_api; object-src 'self'"

Teraz rozszerzenie nie uruchamia się z błędem, wskazujących, że moja wartość CSP jest niedopuszczalne. Jakieś pomysły co robię nie tak?

1

Najlepsza odpowiedź

0

Możesz sprawdzić chrome.scripting.executeScript(), pozwala to na załadowanie biblioteki, a następnie wykonać jakiś kod, który ją wykorzystuje. Aby to zrobić, należy umieścić go w tym samym folderze, co i inne rozszerzenie (wystarczy skopiować bibliotekę w js). Kod, który korzysta z biblioteki, powinien być wykonany po usunięciu pierwotnego obietnice chrome.scripting.executeScript.

https://developer.chrome.com/docs/extensions/reference/scripting/#usage

2021-11-25 08:52:09

Skopiowałem API w swój kod i używał chrome.scripting.executeScript(), i to działa! Dziękuję bardzo!
weissguy

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................