c# - 每个站点所有打开的选项卡仅浏览器通知一次

标签 c# asp.net asp.net-mvc signalr

我有一个由 C# ASP.Net MVC 5.0 支持的新闻网站,我想在管理员添加/编辑或删除新闻时向客户端浏览器推送通知。
所以我在所有页面中使用的模板中添加了一个信号器脚本。

_Layout.cshtml

var notificationsHub = $.connection.notificationHub;
$.connection.hub.start();
jQuery(function($) {
    notificationsHub.client.Toast = function (title, body) {
        var options = {
            body: body,
        };
        var notification = new Notification(title, options);
    };
});

并将此代码添加到新闻添加/编辑/删除完成后重定向的页面

<script>
    $.connection.hub.start().done(function() {
        notificationsHub.server.toast('@NotificationHub.Type.ToString()', '@Html.Raw(NotificationHub.Title)', '@Html.Raw(NotificationHub.Body)');
    });
</script>

当我添加/编辑/删除新闻时,它工作正常,但问题是它会将通知推送到我站点中所有打开的选项卡。有没有什么技巧可以避免这种情况发生并在每个网站上只显示一个浏览器通知?

最佳答案

然后你必须知道打开的标签页数和使用的 URL。请参阅“How to get the number of tabs opened of my web in a browser using jquery?”SO 问题以了解出于隐私原因不希望这样做的讨论。

关于c# - 每个站点所有打开的选项卡仅浏览器通知一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37427520/

相关文章:

c# - System.IndexOutOfRangeException - 索引超出数组范围

c# - 检查目录是否存在动态路径

asp.net - Windows 身份验证多次请求

c# - 注销被禁止的用户

C# 通用比较方法 [C++ 模板的模拟]

c# - c# 可以向包含法语字符的地址发送电子邮件吗?

c# - 从 MP4 视频中提取 JPG 图像

jquery - jquery中如何使用load函数发送数据

c# - 以编程方式获取命名管道的系统名称

javascript - 使用 IE11 时,ASP.NET WebForms 中的登录 ReturnUrl 导致 JavaScript 严重错误