我怎么能让一个铬扩展访问第三方API剧本吗?

0

的问题

我想要访问一个脚本,从YouTube的框架播放API为了玩/暂停一个视频、用于镀铬扩展。 我JS如下(从 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();
}

然而,当我加载的扩展到铬,我得到的以下错误:

拒绝装载的脚本https://www.youtube.com/iframe_api'因为它违反了以下内容的安全政策指令:"脚本src'自我'". 注意,'脚本src-elem'没有明确设定,因此,'脚本src'被用作后备。

我试图加入该网址的CSP在清单。json(见下文)。 我也删除了所有内联JS。

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

现在,扩展失败,载有一个错误,我CSP值是无效的。 任何想法什么我做错了什么?

1

最好的答案

0

你可以检查。脚本。executeScript(),这可以让你来负载的图书馆,然后执行一些代码使用。 要做到所以你需要有它所在的同一个文件夹中的其余部分的扩展(只有副本的图书馆js文件)。 代码使用的图书馆必须执行之后最初的承诺。脚本。executeScript得到解决。

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

2021-11-25 08:52:09

我复制的API入我的代码和使用。脚本。executeScript(),和它的工作! 谢谢你这么多!
weissguy

其他语言

此页面有其他语言版本

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