Comment puis-je autoriser une extension chrome pour accéder à une tierce partie de l'API de script?

0

La question

Je suis en train d'essayer d'accéder à un script à partir de YouTube iframe joueur de l'API pour lire/mettre en pause une vidéo, pour une extension chrome. Mon JS est ci-dessous (à partir de 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();
}

Cependant, lorsque je charge l'extension pour Chrome, j'obtiens l'erreur suivante:

Refusé de charger le script 'https://www.youtube.com/iframe_api" parce qu'il viole le Contenu suivant la Politique de Sécurité de la directive: "script src" soi". Notez que le script src-elem' n'a pas été explicitement définie, de sorte 'script src" est utilisé comme une solution de repli.

J'ai essayé d'ajouter l'URL de la CSP dans le Manifeste.json (ci-dessous). J'ai aussi supprimé tous les JS inline.

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

Maintenant, l'extension ne parvient pas à charger avec une erreur que mon CSP valeur n'est pas valide. Toute idée de ce que je fais mal?

1

La meilleure réponse

0

Vous pouvez vérifier le chrome.l'écriture de scripts.executeScript(), cette fonction vous permet de charger la bibliothèque, puis d'exécuter du code qui l'utilise. Pour ce faire, vous devez l'avoir dans le même dossier que le reste de l'extension (il suffit de copier la bibliothèque à un fichier js). Le code qui utilise la bibliothèque doit être exécuté après la promesse initiale de chrome.l'écriture de scripts.executeScript est résolu.

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

2021-11-25 08:52:09

J'ai copié l'API dans mon code et utilisé google chrome.l'écriture de scripts.executeScript(), et cela a fonctionné! Merci beaucoup!
weissguy

Dans d'autres langues

Cette page est dans d'autres langues

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