JavaScript通知在功能中无法正常工作

时间:2014-06-06 18:16:21

标签: javascript html notifications youtube-iframe-api

我最近制作了一个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'];
   }
}

Example

如果有人能够对我做错了什么有所了解,我将非常感激。

1 个答案:

答案 0 :(得分:0)

我在谷歌Chrome版本29.0.1547.66 m

中为我工作了

似乎限制Chrome中的通知自动运行,您必须进入网络浏览器并将其设置为,允许来自所有网站的通知而不询问,或者每次都要求通知。

我的浏览器设置为每次都要求通知。但是,您的文档中没有任何代码要求获得运行通知的权限。当我将浏览器设置为运行通知而不询问它是否正常工作。

唯一的另一个问题是你的

"var videend = 1;" 

未在本地函数内访问。我移动了函数内部,然后你的if语句开始工作。

http://jsfiddle.net/83tju/3/

有用的资源

https://developer.mozilla.org/en-US/docs/Web/API/notification

http://www.w3.org/TR/notifications/#permission

在阅读这些资源之后,看起来好像用于创建通知的语法对我正在使用的chrome版本不起作用,这可以解释为什么我不得不停止浏览器询问通知?不确定。稍后我将在更新的浏览器上查看此内容。