在 youtube.com 从 YouTube 播放器状态触发事件
Trigger an event from a youtube player state on youtube.com
我正在尝试在视频结束于 youtube.com 时触发扩展中的事件。
我无法从其他扩展中找到任何示例。
到目前为止我尝试了什么:
编辑:我像这里一样注入了脚本:
现在通过注入,alert('test')
确实出现了,所以注入可以达到那个点。但后来什么也没发生,知道为什么吗?
//script.js file
alert('test');
function onPlayerStateChange(event) {
if(event.data === YT.PlayerState.ENDED) {
alert('done');
}
}
或:
//script.js file
alert('test');
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player( 'player', {
events: { 'onStateChange': onPlayerStateChange }
});
}
function onPlayerStateChange(event) {
if(event.data === YT.PlayerState.ENDED) {
alert('done');
}
}
事件常量来自:https://developers.google.com/youtube/js_api_reference?csw=1#Events
我的清单文件:http://chopapp.com/#j89brn5f,bk.js
是空的,cnt.js
就像在脚本注入link中一样。 script.js
以上。
由于您没有嵌入并且您期待 HTML5 播放器,因此您根本不需要 任何 技巧,包括注入页面。
您有一个 DOM,其中有一个(单个)<video>
元素。您可以照常附加到它的事件。
示例:
// Content script; assumes the page already created the <video> element
var video = document.getElementsByTagName("video")[0];
if(video) {
video.addEventListener("ended", function() {
console.log("Video ended");
})
} else {
console.error("Video element not found");
}
您可以在 MDN Media Events reference 查看其他活动。
我正在尝试在视频结束于 youtube.com 时触发扩展中的事件。
我无法从其他扩展中找到任何示例。
到目前为止我尝试了什么:
编辑:我像这里一样注入了脚本:
现在通过注入,alert('test')
确实出现了,所以注入可以达到那个点。但后来什么也没发生,知道为什么吗?
//script.js file
alert('test');
function onPlayerStateChange(event) {
if(event.data === YT.PlayerState.ENDED) {
alert('done');
}
}
或:
//script.js file
alert('test');
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player( 'player', {
events: { 'onStateChange': onPlayerStateChange }
});
}
function onPlayerStateChange(event) {
if(event.data === YT.PlayerState.ENDED) {
alert('done');
}
}
事件常量来自:https://developers.google.com/youtube/js_api_reference?csw=1#Events
我的清单文件:http://chopapp.com/#j89brn5f,bk.js
是空的,cnt.js
就像在脚本注入link中一样。 script.js
以上。
由于您没有嵌入并且您期待 HTML5 播放器,因此您根本不需要 任何 技巧,包括注入页面。
您有一个 DOM,其中有一个(单个)<video>
元素。您可以照常附加到它的事件。
示例:
// Content script; assumes the page already created the <video> element
var video = document.getElementsByTagName("video")[0];
if(video) {
video.addEventListener("ended", function() {
console.log("Video ended");
})
} else {
console.error("Video element not found");
}
您可以在 MDN Media Events reference 查看其他活动。