我最近做了一個YouTube JukeBox。我有我想做的一切,除非我試圖讓通知在播放事件上工作/顯示,只有在前一個視頻已經結束的情況下。JavaScript通知功能不能正常工作
我試圖設置一個變量,然後在視頻結束爲true時更新它,但是當我在play事件中檢查它時,它會一直返回「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'];
}
}
如果還有人可能提供一些洞察我做錯了,我會非常感激。
是的,但是這意味着每次調用'onPlayerStateChange'時都會將變量設置回1,這是每當玩家暫停/播放/緩衝/結束時。目標是隻顯示新的視頻播放。我使用Aurora&IE8編寫了所有這些測試。 – vman315
JavaScript中的全局變量 - http://snook.ca/archives/javascript/global_variable 我更新了jsfiddle現在有一個全局變量,以便通知只在該歌曲的第一個播放中播放。 http://jsfiddle.net/83tju/4/ –
我已經嘗試過'window.videend',但它沒有爲我工作,但這個工程。我忘了將'Notification.requestPermission'添加到原始的JSFiddle中,這也許就是爲什麼它沒有要求您的Chrome版本獲得批准。 [最終結果](http://jsfiddle.net/83tju/8/),我加了'videonote.onshow = function(){setTimeout(function(){videonote.close()},5000);}'所以他們將在Chrome中關閉。 感謝您的幫助。我會贊成但沒有足夠的代表。 – vman315