JavaScript通知在函数中没有按预期工作

JavaScript notifications not working as expected in function

本文关键字:工作 通知 函数 JavaScript      更新时间:2023-09-26

我最近做了一个YouTube点唱机。我有我想做的一切,除了我试图让通知工作/显示播放事件只有当上一个视频已经结束。

我试过设置一个变量,然后在视频结束为true时更新它,但是当我在播放事件中检查它时,它一直返回"未定义"。

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'];
   }
}

例子

如果有人能告诉我我做错了什么,我将非常感激。

我得到了这个工作为我在谷歌Chrome版本29.0.1547.66 m

看起来好像Chrome中的通知被限制自动运行,你必须进入你的web浏览器并将它们设置为,允许所有网站的通知而不询问,或者每次都询问通知。

我的浏览器设置为每次询问是否允许通知。但是,您的文档中没有任何代码来请求运行通知的权限。当我设置我的浏览器运行通知没有询问,然后它工作正常。

唯一的问题是你的

"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/许可

阅读这些资源后,它似乎好像你用来创建通知的语法不工作在我使用的chrome版本,这可能解释了为什么我不得不阻止我的浏览器请求通知?不确定。我将不得不在更新后的浏览器上查看这个