我想用Javascript检测我在Youtube网站上观看的Youtube视频的结尾。
我知道他们有一个API,我试着用GreaseMonkey把它加载到页面中,但是好像不起作用。也许API只适用于其他网站的嵌入式视频?
以下是我目前掌握的情况:
if (window.location.href.indexOf("&enablejsapi=1") == -1)
{
window.location = window.location.href + "&enablejsapi=1";
}
var api = document.createElement('script');
api.type = 'text/javascript';
api.src = "https://www.youtube.com/iframe_api";
document.body.appendChild(api);
var onFinish = document.createElement('script');
onFinish.type = 'text/javascript';
var onFinishContent = "function onPlayerStateChange(event) { console.log('test'); if (event.data == YT.PlayerState.ENDED) { console.log('end'); } }"
var textNode = document.createTextNode(onFinishContent);
onFinish.appendChild(textNode);
document.body.appendChild(onFinish);
function onPlayerStateChange(event)
{
console.log("test");
if (event.data == YT.PlayerState.ENDED)
{
console.log("end");
}
}
正如您所看到的,我尝试通过两种方法使onPlayerStateChange
函数可调用,一种是直接使用Greasemonkey,另一种是通过注入脚本节点,但这两种方法都不起作用,我从未在控制台中看到显示的"test"消息。
有人知道为什么我似乎无法加载API吗?
1条答案
按热度按时间8wtpewkr1#
塞巴斯蒂安·西蒙的评论-回答在今年2015:
我检查了一下,这个在2022年仍然有效。