私はChrome拡張機能を作成しています。ユーザーがyoutube.comで動画を見ている間に動画の開始/終了を検出したいと思います。私の状況と私が読んだ他のチュートリアルとの違いは、私自身のYouTubeビデオを自分のサイトに埋め込むのではなく、ユーザーがYouTubeで見ているビデオのイベントを検出したいのです。Chrome拡張コンテンツスクリプトを使用してyoutubeビデオイベントを検出
は、今のところ私のmanifest.jsonをファイルには、コンテンツスクリプトの次の行を持っています
"content_scripts": [
{
"matches": ["http://*/*","https://*/*"],
"js": ["js/jquery.js", "js/iframe_api.js", "js/contentScript.js"],
"all_frames": true
}
],
私はjqueryのダウンロードしたとiframe_api.jsがhttps://www.youtube.com/iframe_apiの内容です。マイcontentScript.jsファイルには、私はちょうどビデオの準備ができたときに、コンソールに何かを印刷する、非常に簡単です:
function onYouTubeIframeAPIReady() {
var player;
player = new YT.Player('ytplayer', {
events: {
'onReady': onPlayerReady,
}
});
}
function onPlayerReady(event) {
console.log('It worked!');
}
誰かが私を助けてもらえますか?コンテンツスクリプトでもこれを行うことができますか、またはコンテンツスクリプトが住んでいる「独立した環境」にないため、YouTube動画のiframeにアクセスできませんか?
コンテンツスクリプトはDOMにのみアクセスできます。彼らは、javascriptのコンテキストにアクセスすることはできませんが、DOMノードにリスナーを添付することができます。 – chrmod
@chrmodそれは理にかなっています。 YouTubeのiframeがDOMの一部とみなされているかどうかはわかりませんでしたが、それ以上の点検ではjavascriptを使って動的に読み込まれているようですので、コンテンツスクリプトがアクセスできないと思われます。私はしかし、自分自身の代替ソリューションを見つけた、私の答えは以下を参照してください。 – GabeMeister