Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome通知在所有选项卡中可见_Javascript_Google Chrome_Google Chrome Extension_Notifications - Fatal编程技术网

Javascript Chrome通知在所有选项卡中可见

Javascript Chrome通知在所有选项卡中可见,javascript,google-chrome,google-chrome-extension,notifications,Javascript,Google Chrome,Google Chrome Extension,Notifications,我正在为chrome编写一个扩展,我必须在当前选项卡中显示通知。通过使用下面的代码,我可以显示通知,但它在所有选项卡上都是可见的。如何确保通知仅在当前选项卡上可见 var notification = new Notification('Notification title', { icon: '2_Flat_logo_on_transparent_82x75.png', body: statusText }); notification.onclick = function () {

我正在为chrome编写一个扩展,我必须在当前选项卡中显示通知。通过使用下面的代码,我可以显示通知,但它在所有选项卡上都是可见的。如何确保通知仅在当前选项卡上可见

var notification = new Notification('Notification title', {
icon: '2_Flat_logo_on_transparent_82x75.png',
   body: statusText
 }); 
notification.onclick = function () {
    window.open(url);      
 };**

提前感谢。

没有功能仅在中的单个选项卡中显示通知

不过,您可以在
window.onblur
window.onfocus
的帮助下自己制作:

document.addEventListener('DOMContentLoaded',function(){
if(Notification.permission!=“已授予”)
Notification.requestPermission();
});
var延迟=0;
var realClose=false;
var currentNotifs=0;
函数createCurrentTabNotification(标题、正文、图标、onclick){
如果(Notification.permission==“拒绝”){
返回警报(“权限被拒绝!”);
}else if(Notification.permission==“默认”){
Notification.requestPermission();
警报(“请允许通知!”);
返回setTimeout(函数(){
createCurrentTabNotification(标题、正文、图标、onclick);
}, 5000);
}
函数blur(){
currentNotifs++;
延迟=0;
setTimeout(函数(){
模糊=真实;
如果(通知&!realClose){
通知。关闭();
}
}, 100);
}
函数焦点(){
模糊=错误;
setTimeout(函数(){
模糊=错误;
如果(通知&!realClose){
分离(“模糊”,模糊);
分离(“焦点”,焦点);
setTimeout(函数(){
createCurrentTabNotification(notification.title、notification.body、notification.icon、notification.onclick);
},延误);
延迟+=300;
}
当前通知--;
如果(!currentNotifs)realClose=false;
}, 100);
}
var=false;
var attach=window.addEventListener;
var detach=window.removeEventListener;
var通知=新通知(标题{
身体:身体,,
图标:图标
});
notification.onshow=函数(){
如果(!document.hasFocus()){
模糊=真实;
通知。关闭();
}
};
notification.onclick=function(){
通知。关闭();
onclick();
};
notification.onclose=函数(){
如果(!模糊){
realClose=true;
setTimeout(函数(){
realClose=false;
}, 111);
如果(currentNotifs>0)currentNotifs--;
通知=空;
分离(“模糊”,模糊);
分离(“焦点”,焦点);
}
};
附加(“模糊”,模糊);
附加(“焦点”,焦点);
}
函数notify(){
createCurrentTabNotification(“我的通知”,“嘿!”,null,function(){
窗口打开(“http://www.google.com");
});
}

请在此处查看:

为什么需要它?@user1583888哪个部分不工作?你会犯什么错误?我已经更新了我的答案,现在可以使用多个通知,应该可以跨浏览器使用