我最近制作了一个YouTube JukeBox。我有我想做的一切,除了我试图让通知在播放事件中工作/显示只有在前一个视频结束时。
我尝试设置一个变量,然后在视频结束为true时更新视频,但是当我在播放事件中检查时,它会一直返回“undefined”。
function onPlayerStateChange(event)
{
var videoData = player.getVideoData();
if (event.data == 0)
{
var videend = 1;
player.loadVideoById($("input[name=video]:radio:checked").closest('tr').next().find('input').prop("checked", true).val());
$('.playlist').scrollTo($("input[name=video]:radio:checked").closest('tr'));
}
if (event.data == 1)
{
$("#info").css("display","none");
if(videend == 1)
{
var videend = 0;
new Notification(videoData['author'], {
dir: "auto",
lang: "",
body: videoData['title'],
icon: "http://vman315.com/base/images/Pinkie-Pie-mustache.png",
});
}
document.title = '\u25B6 ' + videoData['title'];
}
}
如果有人能够对我做错了什么有所了解,我将非常感激。
答案 0 :(得分:0)
我在谷歌Chrome版本29.0.1547.66 m
中为我工作了似乎限制Chrome中的通知自动运行,您必须进入网络浏览器并将其设置为,允许来自所有网站的通知而不询问,或者每次都要求通知。
我的浏览器设置为每次都要求通知。但是,您的文档中没有任何代码要求获得运行通知的权限。当我将浏览器设置为运行通知而不询问它是否正常工作。
唯一的另一个问题是你的
"var videend = 1;"
未在本地函数内访问。我移动了函数内部,然后你的if语句开始工作。
有用的资源
https://developer.mozilla.org/en-US/docs/Web/API/notification
http://www.w3.org/TR/notifications/#permission
在阅读这些资源之后,看起来好像用于创建通知的语法对我正在使用的chrome版本不起作用,这可以解释为什么我不得不停止浏览器询问通知?不确定。稍后我将在更新的浏览器上查看此内容。