我想在「內容腳本」谷歌瀏覽器擴展程序中使用「YouTube iframe API」。我應該如何在我的擴展中需要Youtube iframe API?在Google Chrome瀏覽器擴展程序中需要外部javascript
Youtube iFrame API的URL:https://www.youtube.com/iframe_api。
您通常會在清單文件中的Google Chrome擴展程序中包含腳本,但由於URL不會以.js結尾,因此Chrome的擴展頁會引發錯誤。
此外,它看起來像這個URL上的腳本嘗試注入<script>
標籤,由於它無法訪問該頁面的javascript,因此不會與content_script插件一起使用。
manifest.json的
{
...
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["main.js"],
"all_frames": true
}
]
}
main.js
// Inject the script, but this won't work since content scripts can't access the page's javascript (which is where this script is injected).
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
(document.head || document.documentElement).appendChild(tag);
// Create our own player
var player;
var videoID = 'e7Px2yJA6S4';
// When the YouTube API is loaded, it calls this function.
function onYouTubeIframeAPIReady() {
player = new YT.Player('movie_player', {
height: '390',
width: '640',
videoId: videoID,
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
我應該怎麼做不同?我如何正確包含這個腳本?
這種解決方案的問題是main.js仍然沒有獲得來自inject.js注入的API。 –
@DonnyP,已更新。基本上由於執行環境的原因,內容腳本和'