首页 > 代码库 > JavaScript 兼容新旧版chrome和firefox的桌面通知
JavaScript 兼容新旧版chrome和firefox的桌面通知
1.新/旧版本的chrome和firefox都可支持,IE下不支持因此设置为了在最小化窗口处闪烁显示提示文字。
2.设置为提示窗口显示5秒即关闭。
3.可设置图标和点击提示窗口要跳转到的页面(见输入参数)。
var timer = null, title = $(‘title‘).text(); $(‘body‘).on(‘click‘, function() { clearInterval(timer); $(‘title‘).text(title); }); function showMsgNotification(title, msg , iconUrl ,clickUrl) { var Notification = window.Notification || window.mozNotification || window.webkitNotification; if (window.webkitNotifications) { //chrome老版本 if (window.webkitNotifications.checkPermission() == 0) { var notif = window.webkitNotifications.createNotification(iconUrl, title, msg); notif.display = function() { setTimeout(function() { notif.close(); }, 5000); } notif.onerror = function() { } notif.onclose = function() { } notif.onclick = function() { window.focus(); window.location.href = clickUrl; } notif.replaceId = ‘Meteoric‘; notif.show(); } else { window.webkitNotifications.requestPermission($jy.notify); } } else if(Notification) {//支持桌面通知 if(Notification.permission == "granted") {//已经允许通知 var instance = new Notification(title, { body: msg, icon: iconUrl //renotify : true }); instance.onclick = function() { //$(‘body‘).css({‘background‘: ‘red‘}); //console.log(‘onclick‘); window.focus(); window.location.href = clickUrl; //window.open(clickUrl, "_blank"); }; instance.onerror = function() { //console.log(‘onerror‘); }; instance.onshow = function() { setTimeout(function() { instance.close(); }, 5000); }; instance.onclose = function() { //console.log(‘onclose‘); }; }else {//第一次询问或已经禁止通知(如果用户之前已经禁止显示通知,那么浏览器不会再次询问用户的意见,Notification.requestPermission()方法无效) Notification.requestPermission(function(status) { if (status === "granted") {//用户允许 var instance = new Notification(title, { body: msg, icon: iconUrl }); instance.onclick = function() { window.focus(); window.location.href = clickUrl; }; instance.onerror = function() { // Something to do }; instance.onshow = function() { // Something to do }; instance.onclose = function() { // Something to do }; }else {//用户禁止 return false; } }); } }else {//不支持(IE等) var index = 0; clearInterval(timer); timer = setInterval(function() { if(index%2) { $(‘title‘).text(‘【 】‘+ title);//这里是中文全角空格,其他不行 }else { $(‘title‘).text(‘【快讯】‘+ title); } index++; if(index > 20) { clearInterval(timer); } }, 500); } }
JavaScript 兼容新旧版chrome和firefox的桌面通知
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。